diff options
author | Soispha <soispha@vhack.eu> | 2023-05-28 22:10:24 +0200 |
---|---|---|
committer | Soispha <soispha@vhack.eu> | 2023-05-28 22:10:24 +0200 |
commit | e5af81a5f9d9d3a2af0d3e970815e3c73beb0840 (patch) | |
tree | a8acf6adde5c6f509bf523c28d4243869a3d1107 /home-manager/config/lf/commands/scripts/archive | |
parent | Fix(bootstrap): Quote scripts (diff) | |
download | nixos-config-e5af81a5f9d9d3a2af0d3e970815e3c73beb0840.tar.gz nixos-config-e5af81a5f9d9d3a2af0d3e970815e3c73beb0840.zip |
Fix(hm/conf/lf/cmds): Rework some of them
Diffstat (limited to '')
-rwxr-xr-x | home-manager/config/lf/commands/scripts/archive | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/home-manager/config/lf/commands/scripts/archive b/home-manager/config/lf/commands/scripts/archive index 617a4ace..3d267fa1 100755 --- a/home-manager/config/lf/commands/scripts/archive +++ b/home-manager/config/lf/commands/scripts/archive @@ -9,30 +9,46 @@ SHELL_LIBRARY_VERSION="1.1.3" . %SHELL_LIBRARY_PATH # times. set -f -archivers=$(tmp 'echo "gzip xz 7z zip"'); +archivers="$(tmp 'echo "gzip xz 7z zip"')"; -readp "File Name: " name; +prompt "Archive name: " +name="" +while [ -z "$name" ] || [ -e "$name" ] +do + read -r name + if [ -e "$name" ]; then + prompt "Archive already exists, overwrite [y|N]: " + read -r ans -FX="$(awk -v Root="$(if [ "$(pwd)" = "/" ]; then pwd; else echo "$(pwd)/";fi)" '{ -for (i=1; i<=NF; i++) { - gsub(Root, "", $i); - print $i; -} -}' "$(tmp "echo \"$fx\" | tr '\n' ' '")")"; + if [ "$ans" = "y" ]; then + break + else + prompt "Archive name: " + fi + fi +done -case $(awk '{for (i=1; i<=NF; i++) print $i}' $archivers | fzf) in +root="$(if [ "$(pwd)" = "/" ]; then pwd; else echo "$(pwd)/";fi)"; + +# fx contains all selected file name separated by a newline +while read -r raw_file; do + file="$(echo "$raw_file" | sed "s|$root||")"; + set -- "$@" "$file"; +done < "$(tmp "echo '$fx'")"; + +case "$(awk '{for (i=1; i<=NF; i++) print $i}' "$archivers" | fzf)" in "gzip") - tar -czf "$name".tar.gz $FX + tar -czf "$name".tar.gz "$@" ;; "xz") - tar -cf "$name".tar $FX + tar -cf "$name".tar "$@" xz -z -9 -e -T0 "$name".tar ;; "7z") - 7z a "$name".7z $FX + 7z a "$name".7z "$@" ;; "zip") - zip --symlinks -r "$name".zip $FX + zip --symlinks -r "$name".zip "$@" ;; esac # vim: ft=sh |