find . -type d -name .git | while read gitdir; do pushd "$gitdir/../" > /dev/null name=`dirname "$gitdir"|cut -d / -f 2|cut -d ' ' -f 1` echo == Entering $name == url=$(grep 'url = zx2c4.com:git.zx2c4.com' .git/config | cut -d '=' -f 2 | tr -d ' ') url=$(echo $url | cut -d ' ' -f 1) if ! echo $url | grep zx2c4.com > /dev/null; then echo "Not a valid zx2c4 ssh repo." echo popd > /dev/null continue fi echo $url scp $url/description .tmpdesc > /dev/null description=$(cat .tmpdesc) rm .tmpdesc echo $description sed -i -e "s/url = zx2c4.*$/url = gitcode@zx2c4.com:$name/g" .git/config pushd ~/Projects/gitolite-admin/conf > /dev/null echo "Writing config.." (echo echo " repo $name" echo " RW+CD = zx2c4" echo " R = @all" echo " $name \"Jason A. Donenfeld\" = \"$description\"") >> gitolite.conf git commit -a -m "Adding $name to repository." git push popd > /dev/null git push --all git push --tags echo popd > /dev/null done