From fc6002e56ffab7503e7e59b255cacb3e90f09995 Mon Sep 17 00:00:00 2001 From: Phantop Date: Sun, 17 Apr 2022 15:39:52 -0400 Subject: [PATCH] appdwarf: split header into multiple files --- appdwarf | 13 ++++++------- header | 14 ++++++++++++++ header_folder | 14 ++++++++++++++ header_separate | 11 +++++++++++ headers | 50 ------------------------------------------------- 5 files changed, 45 insertions(+), 57 deletions(-) create mode 100755 header create mode 100755 header_folder create mode 100755 header_separate delete mode 100755 headers diff --git a/appdwarf b/appdwarf index ae6dff3..2cde507 100755 --- a/appdwarf +++ b/appdwarf @@ -16,7 +16,7 @@ fi set -e # exit on failure IFS=$(printf '\n\t') # smarter ifs -. "$(dirname "$(readlink -f "${0}")")/headers" && header +HEAD="$(dirname "$(readlink -f "${0}")")/header" while true; do # process args case "$1" in @@ -24,10 +24,12 @@ while true; do # process args app="$2" shift ;; --folder | -f) - header_folder "$(realpath "$2")" + "$HEAD"_folder + HEAD=/tmp/dwarfhead + sed -i "2s|$|\"$2\"|" "$HEAD" shift ;; --separate | -s) - header_separate ;; + HEAD="$HEAD"_separate ;; --url | -u) app=$(basename "$2") aria2c -x16 -s16 "$2" -o "$app" || wget "$2" -O "$app" @@ -48,10 +50,7 @@ if [ -n "$app" ]; then # handle and extract appimage input, if present [ ! -f "$app" ] && tput setaf 1 && echo "$app" is not a valid file && exit 1 chmod +x "$app" rm -rf squashfs-root - case "$app" in - /*) "$app" --appimage-extract || exit 1 ;; - *) ./"$app" --appimage-extract || exit 1 ;; - esac + "$(realpath "$app")" --appimage-extract || exit 1 rm "$app" set -- "$(basename "$app" .AppImage)" "$@" mv squashfs-root "$1" diff --git a/header b/header new file mode 100755 index 0000000..100ab14 --- /dev/null +++ b/header @@ -0,0 +1,14 @@ +#!/bin/sh +# shellcheck disable=SC2086,SC2155 +DIR="/tmp/dwarf_$(basename "$0")$(echo "$0" | md5sum | head -c5)" +export APPDWARF_CMD="$(basename "$0")" +if [ ! -d "$DIR" ]; then + mkdir "$DIR" + ARG="-o offset=auto -o tidy_strategy=swap -o workers=4" + dwarfs $ARG "$0" "$DIR" 2>/dev/null +fi + +"$DIR/AppRun" "$@" +fusermount -quz "$DIR" +rmdir "$DIR" 2> /dev/null +exit diff --git a/header_folder b/header_folder new file mode 100755 index 0000000..b6d944a --- /dev/null +++ b/header_folder @@ -0,0 +1,14 @@ +#!/bin/sh +cat > /tmp/dwarfhead << 'EOF' +#!/bin/sh +DIR= +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 diff --git a/header_separate b/header_separate new file mode 100755 index 0000000..8e98605 --- /dev/null +++ b/header_separate @@ -0,0 +1,11 @@ +#!/bin/sh +# shellcheck disable=SC2086,SC2155 +DIR="$(mktemp -td dwarf_"$(basename "$0")"XXXXX)" +ARG="-o offset=auto -o tidy_strategy=swap -o workers=4" +export APPDWARF_CMD="$(basename "$0")" +dwarfs $ARG "$0" "$DIR" 2>/dev/null + +"$DIR/AppRun" "$@" +fusermount -uz "$DIR" +rmdir "$DIR" +exit diff --git a/headers b/headers deleted file mode 100755 index c42530f..0000000 --- a/headers +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -HEAD=/tmp/dwarfhead -header_separate() { - cat > $HEAD << 'EOF' -#!/bin/sh -DIR="$(mktemp -td dwarf_"$(basename "$0")"XXXXX)" -ARG="-o offset=auto -o tidy_strategy=swap -o workers=4" -export APPDWARF_CMD="$(basename "$0")" -dwarfs $ARG "$0" "$DIR" 2>/dev/null - -"$DIR/AppRun" "$@" -fusermount -uz "$DIR" -rmdir "$DIR" -exit -EOF -} - -header() { - cat > $HEAD << 'EOF' -#!/bin/sh -DIR="/tmp/dwarf_$(basename "$0")$(echo "$0" | md5sum | head -c5)" -export APPDWARF_CMD="$(basename "$0")" -if [ ! -d "$DIR" ]; then - mkdir "$DIR" - ARG="-o offset=auto -o tidy_strategy=swap -o workers=4" - dwarfs $ARG "$0" "$DIR" 2>/dev/null -fi - -"$DIR/AppRun" "$@" -fusermount -quz "$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 -}