confz

git mirror of https://ccx.te2000.cz/bzr/confz
git clone https://ccx.te2000.cz/git/confz
Log | Files | Refs

commit d02252254535f548b980b0ed7107afd031fcd162
parent 23b106a44ffe0f6acb7edad87af1240c36579df1
Author: Jan Pobrislo <ccx@webprojekty.cz>
Date:   Wed, 14 Dec 2016 10:17:50 +0100

support deploying using scp/tar
Diffstat:
Mzsh-functions/confz_vserver_init | 26++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/zsh-functions/confz_vserver_init b/zsh-functions/confz_vserver_init @@ -11,16 +11,30 @@ zmodload -F zsh/stat b:zstat confz_deployed_system_check() { checkvars path source - if [[ ${vars[source]} == */ ]]; then - do_command=( rsync -aAH ${vars[source]} ${vars[path]}/ ) - else - do_command=( tar -xpC ${vars[path]} -f ${vars[source]} ) - fi - fail_reason="${vars[path]}/bin missing" [[ -e ${vars[path]}/bin ]] } +confz_deployed_system_do() { + case ${vars[source]} in + (*/) + rsync -aAH ${vars[source]} ${vars[path]}/ || return $?;; + (scp:*.(tbz|tbz2|bz2)) + scp -q ${vars[source]} /dev/stdout | bzip2 -d | tar -xpC ${vars[path]} + return $[ $pipestatus[1] | $pipestatus[2] | $pipestatus[3] ];; + (scp:*.(tgz|gz)) + scp -q ${vars[source]} /dev/stdout | gzip -d | tar -xpC ${vars[path]} + return $[ $pipestatus[1] | $pipestatus[2] | $pipestatus[3] ];; + (scp:*.xz) + scp -q ${vars[source]} /dev/stdout | xz -d | tar -xpC ${vars[path]} + return $[ $pipestatus[1] | $pipestatus[2] | $pipestatus[3] ];; + (scp:*) + scp -q ${vars[source]} /dev/stdout | tar -xpC ${vars[path]} + return $[ $pipestatus[1] | $pipestatus[2] ];; + (*) + tar -xpC ${vars[path]} -f ${vars[source]} || return $?;; + esac +} # create required directories confz_vserver_run_dirs_check() {