diff --git a/appdwarf b/appdwarf index 364a214..c183ae4 100755 --- a/appdwarf +++ b/appdwarf @@ -1,6 +1,7 @@ #!/bin/bash set -eo pipefail IFS=$'\n\t' +VER=2 HERE=$(dirname $(readlink -f "${0}")) source $HERE/headers @@ -12,7 +13,7 @@ usage(){ } dwarf() { - mkdwarfs -i "$1" -o "$(basename "$1").sh" -B5 "${@:2}" --header $HEAD + mkdwarfs -i "$1" -o "$(basename "$1").sh" -B$back "${@:2}" --header $HEAD chmod +x "$(basename "$1").sh" } @@ -31,7 +32,12 @@ appimage() { fi } + +################################################################ + header +back=5 + while true do case "$1" in @@ -39,14 +45,24 @@ do usage exit 0 ;; - --version) - echo "$version" + --version | -v) + tput setaf 2 + echo appdwarf v"$VER" + echo Maintained by phantop. exit 0 ;; --appimage | -a) appimage "${@:2}" exit 0 ;; + --folder | -f) + header_folder $2 + shift 2 + ;; + --lookback | -b) + back=$2 + shift 2 + ;; --separate | -s) header_separate shift diff --git a/headers b/headers index 4bdae2d..98857e2 100644 --- a/headers +++ b/headers @@ -17,19 +17,33 @@ EOF header() { cat > $HEAD << 'EOF' #!/bin/sh -DIR="/tmp/dwarf_$(echo "$0" | md5sum | head -c5)$(basename "$0")" +DIR="/tmp/dwarf_$(basename "$0")$(echo "$0" | md5sum | head -c5)" export APPDWARF_CMD=$(basename "$0") -if [[ -d $DIR ]]; then - "$DIR/AppRun" "$@" -else +if [[ ! -d $DIR ]]; then mkdir "$DIR" ARG="-o offset=auto -o tidy_strategy=swap -o workers=4" dwarfs $ARG "$0" "$DIR" 2>/dev/null - "$DIR/AppRun" "$@" fi + "$DIR/AppRun" "$@" fusermount -qu "$DIR" -rmdir "$DIR" +rmdir "$DIR" 2> /dev/null +exit +EOF +} + +header_folder() { + echo '#!/bin/sh' > $HEAD + echo DIR=\"$1\" >> $HEAD + cat >> $HEAD << 'EOF' +if [ ! -d "$DIR" ]; then + mkdir "$DIR" + ARG="-o offset=auto -o tidy_strategy=swap -o workers=4" + dwarfs $ARG "$0" "$DIR" 2>/dev/null +else + fusermount -u "$DIR" + rmdir "$DIR" +fi exit EOF }