summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2020-07-01 09:49:43 +0200
committerErich Eckner <git@eckner.net>2020-07-01 09:49:43 +0200
commit85b289069a9a8a8c92c9644ebdef6a59cf3afffb (patch)
tree955a1e047e58cd07892dd5c677990d661d11a131
downloadgit-inverse-archive-85b289069a9a8a8c92c9644ebdef6a59cf3afffb.tar.xz
ein Anfang
-rwxr-xr-xgit-inverse-archive23
1 files changed, 23 insertions, 0 deletions
diff --git a/git-inverse-archive b/git-inverse-archive
new file mode 100755
index 0000000..c4b2ec7
--- /dev/null
+++ b/git-inverse-archive
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+if [ "x$1" = 'x-C' ]; then
+ git_dir=$(readlink -e "$2")
+ shift 2
+else
+ git_dir=$(pwd)
+fi
+
+if [ $# -ne 1 ] || [ ! -d "${git_dir}" ]; then
+ printf 'usage: %s [-C /dir/ec/to/ry] archive.tar\n' "${0##*/}"
+ exit 1
+fi
+
+tmp_dir=$(mktemp -d)
+trap 'cd /; rm -rf --one-file-system "${tmp_dir}"' EXIT
+
+cd "${tmp_dir}"
+git clone "${git_dir}" .
+git -C "${git_dir}" rev-parse HEAD
+
+#bsdtar -C "${tmp_dir}" -xf "$1" --strip-components 1
+find "${tmp_dir}"