#! /usr/bin/env nix-shell #! nix-shell -i bash -p coreutils findutils gnused nix wget set -efuo pipefail SRCS= if [ -d "$1" ]; then SRCS="$(pwd)/$1/srcs.nix" . "$1/fetch.sh" else SRCS="$(pwd)/$(dirname $1)/srcs.nix" . "$1" fi tmp=$(mktemp -d) pushd $tmp >/dev/null wget -nH -r -c --no-parent "${WGET_ARGS[@]}" -A '*.tar.xz.sha256' -A '*.mirrorlist' >/dev/null find -type f -name '*.mirrorlist' -delete csv=$(mktemp) find . -type f | while read src; do # Sanitize file name filename=$(gawk '{ print $2 }' "$src" | tr '@' '_') nameVersion="${filename%.tar.*}" name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,' | sed -e 's,-everywhere-src$,,') version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,') echo "$name,$version,$src,$filename" >>$csv done cat >"$SRCS" <>"$SRCS" <>"$SRCS" popd >/dev/null rm -fr $tmp >/dev/null rm -f $csv >/dev/null