fetch-pack: refactor parsing in get_ack
[git] / contrib / remotes2config.sh
1 #!/bin/sh
2
3 # Use this tool to rewrite your .git/remotes/ files into the config.
4
5 . git-sh-setup
6
7 if [ -d "$GIT_DIR"/remotes ]; then
8         echo "Rewriting $GIT_DIR/remotes" >&2
9         error=0
10         # rewrite into config
11         {
12                 cd "$GIT_DIR"/remotes
13                 ls | while read f; do
14                         name=$(printf "$f" | tr -c "A-Za-z0-9-" ".")
15                         sed -n \
16                         -e "s/^URL:[    ]*\(.*\)$/remote.$name.url \1 ./p" \
17                         -e "s/^Pull:[   ]*\(.*\)$/remote.$name.fetch \1 ^$ /p" \
18                         -e "s/^Push:[   ]*\(.*\)$/remote.$name.push \1 ^$ /p" \
19                         < "$f"
20                 done
21                 echo done
22         } | while read key value regex; do
23                 case $key in
24                 done)
25                         if [ $error = 0 ]; then
26                                 mv "$GIT_DIR"/remotes "$GIT_DIR"/remotes.old
27                         fi ;;
28                 *)
29                         echo "git config $key "$value" $regex"
30                         git config $key "$value" $regex || error=1 ;;
31                 esac
32         done
33 fi