Files

39 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
set -eu
guix_source_url=${GUIX_SOURCE_URL:-https://git.teralink.net/tribes/guix.git}
guix_source_dir=${GUIX_SOURCE_DIR:-$HOME/.local/opt/fruix-builder/src/guix}
metadata_target=${METADATA_OUT:-}
command -v git >/dev/null 2>&1 || {
echo "git is required" >&2
exit 1
}
mkdir -p "$(dirname "$guix_source_dir")"
if [ -d "$guix_source_dir/guix" ]; then
printf 'Using existing Guix source tree: %s\n' "$guix_source_dir"
else
rm -rf "$guix_source_dir"
printf 'Cloning Guix source from: %s\n' "$guix_source_url"
git clone "$guix_source_url" "$guix_source_dir" >"$guix_source_dir.clone.log" 2>&1
fi
resolved_commit=$(git -C "$guix_source_dir" rev-parse HEAD)
metadata_file=$guix_source_dir/.fruix-bootstrap-guix-source.txt
cat >"$metadata_file" <<EOF
guix_source_url=$guix_source_url
guix_source_dir=$guix_source_dir
guix_source_commit=$resolved_commit
EOF
if [ -n "$metadata_target" ]; then
mkdir -p "$(dirname "$metadata_target")"
cp "$metadata_file" "$metadata_target"
fi
printf 'PASS setup-guix-source\n'
printf '%s\n' '--- metadata ---'
cat "$metadata_file"