From e24fdf517619e84fbba268b0d90627b185665cd6 Mon Sep 17 00:00:00 2001 From: Soispha Date: Sat, 6 May 2023 22:10:50 +0200 Subject: Refactor(hm/conf/lf): Separate keybindings and commands --- home-manager/config/lf/commands/scripts/archive | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 home-manager/config/lf/commands/scripts/archive (limited to 'home-manager/config/lf/commands/scripts/archive') 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 -- cgit 1.4.1