diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2013-11-01 16:24:26 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2013-11-01 19:58:08 +0100 |
commit | ba7820b18c0ee8631505f7a2a764f7222a732d44 (patch) | |
tree | 82bc1d530e1f815e8d8687fa642dd5c84a59c114 /libexec/app-install-file | |
parent | 93e2978fbe5582440d79c47b5975659d9cbf701b (diff) | |
download | app.sh-ba7820b18c0ee8631505f7a2a764f7222a732d44.tar.gz app.sh-ba7820b18c0ee8631505f7a2a764f7222a732d44.tar.bz2 app.sh-ba7820b18c0ee8631505f7a2a764f7222a732d44.tar.xz app.sh-ba7820b18c0ee8631505f7a2a764f7222a732d44.zip |
bin/app-upgrade: Removing unreachable code. Fixing it so it comparesv0.2-dev
against the currently installed version instead of the last resolved
version which makes it possible to retry installation of the same
version.
libexec/app-install-file: Allowing installation of the same file
twice. Checks if the file has been unpacked earlier or not. Removes
the unpacked version on failure.
Diffstat (limited to 'libexec/app-install-file')
-rwxr-xr-x | libexec/app-install-file | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/libexec/app-install-file b/libexec/app-install-file index c31f1f4..32b0407 100755 --- a/libexec/app-install-file +++ b/libexec/app-install-file @@ -48,21 +48,29 @@ then usage fi -if [ -d versions/$version ] +re="[.a-zA-Z0-9]" + +if [[ ! $version =~ $re ]] then - echo "Version $version is already installed" - exit 1 + fatal "Invalid version: $version" fi -mkdir -p versions/$version - -echo "Unpacking..." -unzip -q -d versions/$version $file - -if [ ! -d versions/$version/root ] +if [ -d versions/$version ] then - echo "Invalid zip file, did not contain a ./root directory." >&2 - exit 1 + echo "Version $version is already unpacked" +else + mkdir -p versions/$version.tmp + + echo "Unpacking..." + unzip -q -d versions/$version.tmp $file + + if [ ! -d versions/$version.tmp/root ] + then + echo "Invalid zip file, did not contain a 'root' directory." >&2 + rm -rf versions/$version.tmp + exit 1 + fi + mv versions/$version.tmp versions/$version fi if [ -n "$prepend_config" ] |