]> git.ozlabs.org Git - next-scripts/blob - fetch_trees
lots of updates
[next-scripts] / fetch_trees
1 #!/bin/bash
2
3 IFS='   '
4
5 origwd=$(pwd)
6
7 while read email type name url ref; do
8         [[ "$email" =~ '^#.*$' ]] && {
9                 echo $name: skipped
10                 continue
11         }
12         echo $name: $type
13         if [ "$type" = "git" ]; then
14                 git fetch "$name"
15                 continue
16         fi
17         if [ "$type" = "quilt" ]; then
18                 cd ../quilt || {
19                         echo "Cannot chdir to ../quilt" 1>&2
20                         continue
21                 }
22                 [ -d "$name" ] || mkdir "$name" || {
23                         echo "Cannot create quilt directory for $name" 1>&2
24                         cd "$origwd"
25                         continue
26                 }
27                 cd "$name" || {
28                         echo "Cannot chdir to quilt directory for $name" 1>&2
29                         cd "$origwd"
30                         continue
31                 }
32                 wget -N -nv --no-cache "$url/series" || {
33                         echo "Wget of $name series file failed" 1>&2
34                         cd "$origwd"
35                         continue
36                 }
37                 find * -type f | grep -v '^series$' | sort >.series.old
38                 do_echo=echo
39                 grep -q NEXT_PATCHES series &&
40                         do_echo=:
41                 while read line; do
42                         case "$line" in
43                         *NEXT_PATCHES_START*)   do_echo=echo ;;
44                         *NEXT_PATCHES_END*)     do_echo=: ;;
45                         ''|\#*)                 : ;;
46                         *)                      $do_echo $line ;;
47                         esac
48                 done <series | sort >.series.next
49                 wget -N -nv --no-cache -B "$url" -i .series.next || {
50                         echo "Wget of series '$name' failed" 1>&2
51                         cd ..
52                         rm -rf "$name"
53                         git checkout "$name"
54                         break
55                 }
56                 comm -23 .series.old .series.next | xargs -r rm -f
57                 rm -f .series.old .series.next
58                 cd "$origwd"
59         fi
60 done <../real_control
61
62 cd ../quilt
63 git add .
64 git commit -v -a
65
66 exit 0