]> git.g-eek.se Git - users/gustav/scripts.git/commitdiff
[repo-encrypt] Independecny on the gpg-zip package introduced
authorGustav Eek <gustav@fripost.org>
Sat, 18 Apr 2015 09:36:58 +0000 (11:36 +0200)
committerGustav Eek <gustav@fripost.org>
Sat, 18 Apr 2015 09:36:58 +0000 (11:36 +0200)
The procedudre used in the repo-encrypt command is
simplified. Archiving happens with simple tar. The program gpg-zip is
not needed.

The repo-encrypt script is also added to the installation scrip list.

A few TODO items is also kept in the script.

Makefile
repo-encrypt

index 792c6a33628e7a737a76e882bcac6916871b62e0..f7893925bfd5e1148a2b784149df6ccf84233bc5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,9 @@
 SHELL = /bin/bash
 INSTALL = ~/bin
 
-scripts = msmtp-notify
+scripts = \
+msmtp-notify \
+repo-encrypt \
 
 dir := $(abspath $(wildcard $(INSTALL)))
 
index 19a27f0ccc834fb1b9500b923885e535d3b1ab32..0b0591b55e28dfca1af5e181c25a7bb9c7401ce8 100755 (executable)
@@ -1,6 +1,22 @@
 #!/bin/bash
-
-user="gustav"
+#
+# Issue handling in order of priority.
+#
+# TODO FEATURE change to usage of the Git based commands for
+# extraction of root directory names etc. This will change parameter
+# of hte 'encrypt' command to be destination directory path, since
+# filename should be derived from Git.
+#
+# TODO REFACTOR Separate sentral command functionality (compression
+# and extractions) into functions
+#
+# TODO REFACTOR Use the getopts functionality for to parce command
+# line options.
+#
+# TODO REFACTOR Use git clone (double check this) for exportion of the
+# ".git" repository files.
+
+user=$USER
 help="\
 Encrypts or decrypts a bare repository to or from some origin
 or destination, using gpg-zip.
@@ -24,18 +40,19 @@ if [ $1 == encrypt ]; then
     destination=$2
     if [ ! $(echo $destination | grep "^/") ]; then destination="$(pwd)/$destination"; fi
     parent="$(pwd | sed -e 's:^/.*/\(.*$\):\1:')"
-    cd ..
-    gpg-zip --encrypt --output "$destination" --gpg-args "-r $user" "${parent}/.git"
-    cd -
+    tmp_dir="/tmp/${0##*/}-$$"
+    mkdir "$tmp_dir"
+    cp --recursive .git "$tmp_dir/$parent.git"
+    tar --directory "$tmp_dir" --create --file "$tmp_dir/$parent.git.tar" "$parent.git"
+    gpg --encrypt --recipient "$user" < "$tmp_dir/$parent.git.tar" > "$destination"
+    rm -fr "$tmp_dir"
 elif [ $1 == decrypt ]; then
     if [ ${#@} -ne 3 ]; then printf "$0: Wrong number of arguments!\n\n$help"; exit 2; fi
     origin=$2
     destination=$3
     if [ ! $(echo $destination | grep "^/") ]; then destination="$(pwd)/$destination"; fi
     if [ ! $(echo $origin | grep "^/") ]; then origin="$(pwd)/$origin"; fi
-    cd "$destination"
-    gpg-zip --decrypt "$origin"
-    cd -    
+    gpg --decrypt < "$origin" | tar  --extract --directory "$destination"
 else printf "$0: Command '$1' does not exist!\n\n$help"; exit 2
 fi