From 28852be0a9614d251b59babac0a02304397eefc1 Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Tue, 14 Oct 2025 10:44:51 +0000 Subject: [PATCH] adds git-tar for creating tar files of projects --- developer/bash/Z | 2 +- developer/bash/git-tar | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 developer/bash/git-tar diff --git a/developer/bash/Z b/developer/bash/Z index 2997266..5208514 100755 --- a/developer/bash/Z +++ b/developer/bash/Z @@ -1,3 +1,3 @@ #!/bin/sh -/usr/bin/date -u +"%Y-%m-%d_%H:%M:%SZ" +/usr/bin/date -u +"%Y-%m-%d_%H:%M:%S_Z" diff --git a/developer/bash/git-tar b/developer/bash/git-tar new file mode 100644 index 0000000..d655f03 --- /dev/null +++ b/developer/bash/git-tar @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +# puts a tar file of the repo in the top level scratchdir + +set -euo pipefail + +# ensure we're in a git repo +git rev-parse --is-inside-work-tree >/dev/null 2>&1 || { + echo "Error: not inside a git repository." >&2 + exit 1 +} + +repo_top="$(git rev-parse --show-toplevel)" +repo_name="$(basename "$repo_top")" +ref_label="$(git describe --tags --always --dirty 2>/dev/null || git rev-parse --short HEAD)" +out="${repo_top}/scratchpad/${repo_name}-${ref_label}.tar.gz" + +# create archive of HEAD (tracked files only; .gitignore’d stuff is omitted) +git -C "$repo_top" archive --format=tar --prefix="${repo_name}/" HEAD | gzip > "$out" + +echo "Wrote ${out}" -- 2.20.1