Add folder mode, changeable lookback

This commit is contained in:
Phantop 2021-12-31 14:24:04 -05:00
parent 913ad4ccee
commit 9a41bff158
2 changed files with 39 additions and 9 deletions

View file

@ -1,6 +1,7 @@
#!/bin/bash #!/bin/bash
set -eo pipefail set -eo pipefail
IFS=$'\n\t' IFS=$'\n\t'
VER=2
HERE=$(dirname $(readlink -f "${0}")) HERE=$(dirname $(readlink -f "${0}"))
source $HERE/headers source $HERE/headers
@ -12,7 +13,7 @@ usage(){
} }
dwarf() { 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" chmod +x "$(basename "$1").sh"
} }
@ -31,7 +32,12 @@ appimage() {
fi fi
} }
################################################################
header header
back=5
while true while true
do do
case "$1" in case "$1" in
@ -39,14 +45,24 @@ do
usage usage
exit 0 exit 0
;; ;;
--version) --version | -v)
echo "$version" tput setaf 2
echo appdwarf v"$VER"
echo Maintained by phantop.
exit 0 exit 0
;; ;;
--appimage | -a) --appimage | -a)
appimage "${@:2}" appimage "${@:2}"
exit 0 exit 0
;; ;;
--folder | -f)
header_folder $2
shift 2
;;
--lookback | -b)
back=$2
shift 2
;;
--separate | -s) --separate | -s)
header_separate header_separate
shift shift

26
headers
View file

@ -17,19 +17,33 @@ EOF
header() { header() {
cat > $HEAD << 'EOF' cat > $HEAD << 'EOF'
#!/bin/sh #!/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") export APPDWARF_CMD=$(basename "$0")
if [[ -d $DIR ]]; then if [[ ! -d $DIR ]]; then
"$DIR/AppRun" "$@"
else
mkdir "$DIR" mkdir "$DIR"
ARG="-o offset=auto -o tidy_strategy=swap -o workers=4" ARG="-o offset=auto -o tidy_strategy=swap -o workers=4"
dwarfs $ARG "$0" "$DIR" 2>/dev/null dwarfs $ARG "$0" "$DIR" 2>/dev/null
"$DIR/AppRun" "$@"
fi fi
"$DIR/AppRun" "$@"
fusermount -qu "$DIR" 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 exit
EOF EOF
} }