From f35b3a4ed063e940918d8ca28ece75ff80679944 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 29 Jan 2013 14:48:10 -0500 Subject: Rename a few things - s/absrepo/absgit/ - s/pbs-(.*)-convert/pbs-convert-\1/ --- pbs-convert-absgit--filterarch | 45 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 pbs-convert-absgit--filterarch (limited to 'pbs-convert-absgit--filterarch') diff --git a/pbs-convert-absgit--filterarch b/pbs-convert-absgit--filterarch new file mode 100755 index 0000000..73fa96a --- /dev/null +++ b/pbs-convert-absgit--filterarch @@ -0,0 +1,45 @@ +#!/bin/bash -e +arch=$1 + +echo # newline +echo Preparing... + +# generate map of all packages to their treehash +tree="$(mktemp)" +if [[ $arch = master ]]; then + git ls-tree -d "$GIT_COMMIT" */trunk > "$tree" +else + git ls-tree -d "$GIT_COMMIT" */repos/*-"$arch" */repos/*-any > "$tree" +fi + +# generate map of all packages to their repo +repos="$(mktemp)" +printf '%s\n' */repos/*-"$arch" | sed -r 's@^([^/]*)/repos/(.*)-[^-]*$@\1 \2@' | sort -u > "$repos" + +# clean the working directory +rm -rf * + +# add the packages back in as remotes +count="$(wc -l < "$tree")" +cat -n "$tree" | while read n mode type treehash path; do + printf '\r%s (%i/%i)' "$(gettext 'Adding package')" "$n" "$count" + + package="${path%%/*}" + repo="$(sed -n "s/^${package} //p" "$repos")" + commitfile="../packages-${package}.commits" + if [[ -f "$commitfile" ]]; then + commithash="$(sed -n "s/^${treehash} //p" "$commitfile")" + mkdir -p "$repo" + git submodule add ./ "${repo}/${package}" + ( + cd "${repo}/${package}" + git checkout "${commithash}" + ) + else + printf '%s\n' "$package" >> "${TMPDIR}/missing-packages/${arch}.tmp" + fi +done +echo # newline + +# clean up +rm -f "$repos" "$tree" -- cgit v1.2.3