initial commit
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#!/bin/sh
|
||||
# Builds the package to hand out: dist/piscine-graph-tweaks-<version>.zip
|
||||
# A Firefox .xpi is just a zip, so the .xpi copy is produced alongside it.
|
||||
set -eu
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
version=$(sed -n 's/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' manifest.json | head -n 1)
|
||||
if [ -z "$version" ]; then
|
||||
echo "build.sh: no version found in manifest.json" >&2
|
||||
exit 1
|
||||
fi
|
||||
name="piscine-graph-tweaks-$version"
|
||||
|
||||
mkdir -p dist
|
||||
rm -f "dist/$name.zip" "dist/$name.xpi"
|
||||
|
||||
# Zip the CONTENTS (manifest.json at the archive root), not the folder itself.
|
||||
# -r: recursive, -X: no system metadata.
|
||||
if command -v zip >/dev/null 2>&1; then
|
||||
zip -qr -X "dist/$name.zip" manifest.json src README.md
|
||||
elif command -v python3 >/dev/null 2>&1; then
|
||||
# Dependency-free fallback: same result through the zipfile module.
|
||||
python3 - "dist/$name.zip" manifest.json src README.md <<-'EOF'
|
||||
import os, sys, zipfile
|
||||
|
||||
out, sources = sys.argv[1], sys.argv[2:]
|
||||
with zipfile.ZipFile(out, "w", zipfile.ZIP_DEFLATED) as z:
|
||||
for src in sources:
|
||||
if os.path.isdir(src):
|
||||
for root, _, files in os.walk(src):
|
||||
for f in sorted(files):
|
||||
p = os.path.join(root, f)
|
||||
z.write(p, os.path.relpath(p, "."))
|
||||
else:
|
||||
z.write(src, src)
|
||||
EOF
|
||||
else
|
||||
echo "build.sh: needs 'zip' (pacman -S zip) or python3" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp "dist/$name.zip" "dist/$name.xpi"
|
||||
|
||||
echo "→ dist/$name.zip"
|
||||
echo "→ dist/$name.xpi (unsigned — see README, \"Sharing it with friends\")"
|
||||
Reference in New Issue
Block a user