diff options
author | Soispha <soispha@vhack.eu> | 2023-05-06 22:10:50 +0200 |
---|---|---|
committer | Soispha <soispha@vhack.eu> | 2023-05-09 19:33:23 +0200 |
commit | e24fdf517619e84fbba268b0d90627b185665cd6 (patch) | |
tree | fee010c3a92fa0ef9ce22b6b1731a638fd6e9484 /home-manager/config/lf/commands/scripts/archive | |
parent | Fix(hm/conf/git): Remove credential cache (diff) | |
download | nixos-config-e24fdf517619e84fbba268b0d90627b185665cd6.tar.gz nixos-config-e24fdf517619e84fbba268b0d90627b185665cd6.zip |
Refactor(hm/conf/lf): Separate keybindings and commands
Diffstat (limited to 'home-manager/config/lf/commands/scripts/archive')
-rwxr-xr-x | home-manager/config/lf/commands/scripts/archive | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/home-manager/config/lf/commands/scripts/archive b/home-manager/config/lf/commands/scripts/archive new file mode 100755 index 00000000..fd032dd4 --- /dev/null +++ b/home-manager/config/lf/commands/scripts/archive @@ -0,0 +1,39 @@ +#! /usr/bin/env dash +# shellcheck disable=SC2086 +# shellcheck source=/dev/null +# . ~/.local/lib/shell/lib +. %SHELL_LIBRARY_PATH + +# Option '-f' disables pathname expansion which can be useful when $f, $fs, and +# $fx variables contain names with '*' or '?' characters. However, this option +# is used selectively within individual commands as it can be limiting at +# times. +set -f + +archivers=$(tmp 'echo "gzip xz 7z zip"'); + +readp "File Name: " name; + +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' ' '")")"; + +case $(awk '{for (i=1; i<=NF; i++) print $i}' $archivers | fzf) in + "gzip") + tar -czf "$name".tar.gz $FX + ;; + "xz") + tar -cf "$name".tar $FX + xz -z -9 -e -T0 "$name".tar + ;; + "7z") + 7z a "$name".7z $FX + ;; + "zip") + zip --symlinks -r "$name".zip $FX + ;; +esac +# vim: ft=sh |