Export the reviewed application-neutral package set through the exact public allowlist. Development history and private application evidence remain outside this canonical source root. Developed with material AI assistance under maintainer review. Signed-off-by: Cole Speelman <crspeelman@gmail.com>
This commit is contained in:
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
set -euo pipefail
|
||||
usage(){ echo "Usage: export-public.sh OUTPUT_DIRECTORY" >&2; exit 2; }
|
||||
[[ $# -eq 1 ]] || usage
|
||||
root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
|
||||
output=$1
|
||||
[[ $output = /* && $output != / && ! -e $output ]] || usage
|
||||
cd "$root"
|
||||
[[ -z $(git status --porcelain=v1 --untracked-files=all) ]] || { echo "private source must be clean" >&2; exit 1; }
|
||||
mapfile -t files < <(grep -Ev '^[[:space:]]*(#|$)' scripts/public-snapshot.allow)
|
||||
[[ ${#files[@]} -gt 0 ]] || exit 1
|
||||
for file in "${files[@]}"; do
|
||||
[[ $file != /* && $file != *..* && -f $file && ! -L $file ]] || { echo "invalid allowlisted path: $file" >&2; exit 1; }
|
||||
git ls-files --error-unmatch -- "$file" >/dev/null
|
||||
done
|
||||
mkdir -m 0700 "$output"
|
||||
git archive --format=tar HEAD -- "${files[@]}" | tar -x -C "$output"
|
||||
find "$output" -type d -exec chmod 0755 {} +
|
||||
"$output/scripts/check-licenses.sh"
|
||||
echo "exported ${#files[@]} reviewed files"
|
||||
Reference in New Issue
Block a user