aboutsummaryrefslogtreecommitdiffstats
path: root/modules/scripts/gpg-backup
diff options
context:
space:
mode:
Diffstat (limited to 'modules/scripts/gpg-backup')
-rw-r--r--modules/scripts/gpg-backup/completion.zsh23
-rw-r--r--modules/scripts/gpg-backup/default.nix2
-rw-r--r--modules/scripts/gpg-backup/script.sh1
3 files changed, 26 insertions, 0 deletions
diff --git a/modules/scripts/gpg-backup/completion.zsh b/modules/scripts/gpg-backup/completion.zsh
new file mode 100644
index 0000000..f47bbe8
--- /dev/null
+++ b/modules/scripts/gpg-backup/completion.zsh
@@ -0,0 +1,23 @@
+#compdef gpg-backup
+
+_arguments \
+ '1: :->cmds' \
+ '*::arg:->args'
+
+case $state in
+ cmds)
+ local -a commands
+ commands=(
+ 'export:Export all GPG keys to a passphrase-protected file'
+ 'import:Import GPG keys from a backup file'
+ )
+ _describe 'command' commands
+ ;;
+ args)
+ case $words[1] in
+ export|import)
+ _files
+ ;;
+ esac
+ ;;
+esac
diff --git a/modules/scripts/gpg-backup/default.nix b/modules/scripts/gpg-backup/default.nix
index d91c839..1ab41b4 100644
--- a/modules/scripts/gpg-backup/default.nix
+++ b/modules/scripts/gpg-backup/default.nix
@@ -11,11 +11,13 @@ let
path = ./script.sh;
description = "Export/import all GPG keys as a single passphrase-protected file with maximum S2K iteration count\nUsage: gpg-backup export filename.gpg | gpg-backup import filename.gpg";
deps = [
+ pkgs.bash
pkgs.gnupg
pkgs.gnutar
pkgs.coreutils
pkgs.findutils
];
+ completion = builtins.readFile ./completion.zsh;
inherit config;
};
in
diff --git a/modules/scripts/gpg-backup/script.sh b/modules/scripts/gpg-backup/script.sh
index c8e7363..57c216b 100644
--- a/modules/scripts/gpg-backup/script.sh
+++ b/modules/scripts/gpg-backup/script.sh
@@ -1,3 +1,4 @@
+#!/usr/bin/env bash
set -euo pipefail
WORKDIR="$(mktemp -d)"