aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x.extras/mksboarchive23
-rw-r--r--README.md12
2 files changed, 19 insertions, 16 deletions
diff --git a/.extras/mksboarchive b/.extras/mksboarchive
index a53fbf4..fc54709 100755
--- a/.extras/mksboarchive
+++ b/.extras/mksboarchive
@@ -8,9 +8,10 @@ usage() {
usage: ${0##*/} <package-name>
Build the SBo submission tarball <package-name>.tar.gz, the same archive the
-post-commit hook produces, on demand by name. The package must exist in this
-repo (<package-name>/<package-name>.SlackBuild). Any sbodl source symlinks in
-the package directory are removed first so they never leak into the tarball.
+post-commit hook produces, on demand by name. Run from the repo root: the
+package is the <package-name>/ directory below the current directory, with a
+matching <package-name>.SlackBuild. Any sbodl source symlinks in the package
+directory are removed first so they never leak into the tarball.
Output goes to the current directory by default; set OUTPUT to override:
OUTPUT=/tmp ${0##*/} feroxbuster # writes /tmp/feroxbuster.tar.gz
@@ -23,22 +24,22 @@ esac
[ $# -eq 1 ] || { usage >&2; exit 2; }
pkg=$1
-REPO_ROOT=$(git -C "$(dirname "$0")" rev-parse --show-toplevel)
-# Where the tarball lands. Defaults to the current directory; override with
-# the OUTPUT env var (e.g. OUTPUT=/tmp mksboarchive feroxbuster).
+# Run this from the repo root. The package is the <pkg>/ directory below the
+# current directory; the tarball is written to the current directory by
+# default, override with the OUTPUT env var.
OUTPUT=${OUTPUT:-$PWD}
-# Must be a real package dir one level deep with a matching .SlackBuild.
-if [ ! -f "$REPO_ROOT/$pkg/$pkg.SlackBuild" ]; then
- echo "error: '$pkg' is not a package in this repo." >&2
+# Must be a real package dir below CWD with a matching .SlackBuild.
+if [ ! -f "$pkg/$pkg.SlackBuild" ]; then
+ echo "error: no '$pkg/$pkg.SlackBuild' here. Run from the repo root." >&2
exit 1
fi
# Drop any sbodl source symlinks before archiving so they never end up in an
# SBo submission tarball (the pre-commit hook does the same for staged files).
-find "$REPO_ROOT/$pkg" -type l -delete
+find "$pkg" -type l -delete
mkdir -p "$OUTPUT"
-tar -czf "$OUTPUT/$pkg.tar.gz" -C "$REPO_ROOT" "$pkg"
+tar -czf "$OUTPUT/$pkg.tar.gz" "$pkg"
echo "Archive created: $OUTPUT/$pkg.tar.gz"
diff --git a/README.md b/README.md
index 207afc6..f2142c2 100644
--- a/README.md
+++ b/README.md
@@ -73,11 +73,13 @@ rather than at commit time:
OUTPUT=/tmp .extras/mksboarchive hydra # writes /tmp/hydra.tar.gz
```
-It validates that `<package>/<package>.SlackBuild` exists, removes any
-`sbodl` source symlinks from the package directory first (so they never leak
-into the tarball), then archives the directory. The output directory defaults
-to the current working directory and can be overridden with the `OUTPUT`
-environment variable. Run it from anywhere; it locates the repo root via git.
+Run it from the repo root: it looks for a `<package>/<package>.SlackBuild`
+below the current directory, removes any `sbodl` source symlinks from the
+package directory first (so they never leak into the tarball), then archives
+the directory. The output directory defaults to the current working directory
+and can be overridden with the `OUTPUT` environment variable. This means it
+works the same whether you run `.extras/mksboarchive` or an installed copy
+(e.g. in `~/bin`), as long as you are in the repo root.
## Vendored Crates (Rust packages)