slitaz-modular view initramfs/usr/bin/local-mirror @ rev 142

local-mirror: Fixed mirror.slitaz.org/hg/.
author Christopher Rogers <slaxemulator@gmail.com>
date Fri Oct 14 05:47:23 2011 +0000 (2011-10-14)
parents 35572226bde4
children 1642f4b8998f
line source
1 #!/bin/sh
3 source /usr/lib/slitaz/libtaz
4 source_lib commons
5 check_root
6 . /etc/slitaz/slitaz.conf
8 . /etc/local-mirror.conf
10 COMMAND="$1"
11 VERSION="0.1"
12 usage() {
13 echo "$0 $VERSION"
14 echo "$0 [on|off|update-repos|tank-only|mirror-only]"
15 echo "$0 [backup-mirror|up-src-links]"
16 exit 1
17 }
19 #[ -d /mnt/live/memory/mirror/packages ] && PKGDIR="/mnt/live/memory/mirror/packages"
20 #[ -d /mnt/live/memory/mirror/src ] && SRCDIR="/mnt/live/memory/mirror/src"
21 sync_mirror=$(find /mnt/live -name "mirror" -type d -maxdepth 3 | head -1)
23 COOKORDER="$(find /mnt/live/mnt/* -name "cookorder.list" -maxdepth 1)"
24 CUR_PWD="$PWD"
25 version="$(cat /etc/slitaz-release)"
27 [ -d $SLITAZ_DIR/$version ] || mkdir -p $SLITAZ_DIR/$version
28 [ -d $SLITAZ_DIR/repos ] || ln -sf $REPOS_DIR $SLITAZ_DIR/repos
29 [ -d $SLITAZ_DIR/repos ] && REPOS_DIR="$SLITAZ_DIR/repos"
31 if [ -d $PKGDIR ]; then
32 [ -d $SLITAZ_DIR/$version/packages ] || ln -sf $PKGDIR $SLITAZ_DIR/$version/packages
33 [ -d $SLITAZ_DIR/packages ] || ln -sf $PKGDIR $SLITAZ_DIR/packages
34 fi
35 if [ -d $SRCDIR ]; then
36 [ -d $SLITAZ_DIR/$version/src ] || ln -sf $SRCDIR $SLITAZ_DIR/$version/src
37 [ -d $SLITAZ_DIR/src ] || ln -sf $SRCDIR $SLITAZ_DIR/src
38 fi
40 #repos folders for website
41 PEOPLE_WWW_DIR="$REPOS_DIR/slitaz-forge/people"
42 DOC_WWW_DIR="$REPOS_DIR/slitaz-forge/doc"
43 PIZZA_WWW_DIR="$REPOS_DIR/slitaz-pizza/php"
44 BOOT_WWW_DIR="$REPOS_DIR/slitaz-forge/boot"
45 TANK_WWW_DIR="$REPOS_DIR/slitaz-forge/tank/web"
47 if [ "$COMMAND" = "tank-only" ]; then
48 WWW="${WWW/mirror/}"
49 ADDRESS="${ADDRESS/mirror.slitaz.org/}"
50 VHOST_FILE="$VHOST_TANK_FILE"
51 fi
53 if [ "$COMMAND" = "mirror-only" ]; then
54 WWW="${WWW/tank/}"
55 ADDRESS="mirror.slitaz.org"
56 VHOST_FILE="$VHOST_MIRROR_FILE"
57 fi
59 if [ ! -d $PKGDIR ]; then
60 WWW="${WWW/pkg/}"
61 ADDRESS="${ADDRESS/pkg.slitaz.org}"
62 fi
63 [ -d $REPOS_DIR ] || continue
65 INCOMING_REPOSITORY="$COOKING/packages-incoming"
66 INCOMING="$SLITAZ_DIR/$version/incoming"
67 CRON_FILE="/var/spool/cron/crontabs/root"
69 www() {
70 b=$1
71 [ -d $(dirname $CRON_FILE) ] || mkdir -p $(dirname $CRON_FILE)
72 [ -f $CRON_FILE ] || touch $CRON_FILE
73 [ -d $MAIN_WWW_DIR ] || mkdir -p $MAIN_WWW_DIR
74 [ -L /var/www/vhosts ] || ln -sf $MAIN_WWW_DIR /var/www/vhosts
76 if [ -d $REPOS_DIR/wok-tank ]; then
77 REPO_WOK=$REPOS_DIR/wok-tank
78 if [ -x /usr/bin/hg ]; then
79 cd $REPO_WOK
80 if [ ! "$(hg branch)" = "cooking" ]; then
81 hg update cooking
82 fi
83 cd $CUR_PWD
84 fi
85 elif [ -d $REPOS_DIR/wok ]; then
86 REPO_WOK=$REPOS_DIR/wok
87 fi
88 [ -d $STABLE ] || mkdir -p $STABLE
89 [ -d $COOKING ] || mkdir -p $COOKING
91 case "$b" in
92 website)
93 [ -d $REPOS_DIR/$b ] && ln -s $REPOS_DIR/$b $MAIN_WWW_DIR
94 if [ -f $MAIN_WWW_DIR/$b/libs/get-feeds.sh ]; then
95 if [ ! $(grep -l "$MAIN_WWW_DIR/$b/libs/get-feeds.sh" $CRON_FILE) ]; then
96 echo "#Update SliTaz stuff" >> $CRON_FILE
97 echo "*/20 * * * * $MAIN_WWW_DIR/$b/libs/get-feeds.sh" >> $CRON_FILE
98 fi
99 fi
100 ;;
101 people)
102 [ -d $REPOS_DIR/slitaz-forge/people ] && ln -s $REPOS_DIR/slitaz-forge/people $MAIN_WWW_DIR/people
103 ;;
104 doc)
105 [ -d $DOC_WWW_DIR ] && cp -a $DOC_WWW_DIR $MAIN_WWW_DIR/doc
106 [ -d /var/www/dokuwiki ] && cp -a /var/www/dokuwiki/* $MAIN_WWW_DIR/doc
107 VAR="index attic meta media pages"
108 for i in $VAR; do
109 [ -d $REPOS_DIR/slitaz-doc-wiki-data ] && cp -a $REPOS_DIR/slitaz-doc-wiki-data/$i $MAIN_WWW_DIR/doc/data
110 done
111 #[ -d $REPOS_DIR/slitaz-doc-wiki-data/plugins ] && cp -a $REPOS_DIR/slitaz-doc-wiki-data/plugins $MAIN_WWW_DIR/doc/lib
112 chown root.root -R $MAIN_WWW_DIR/doc
113 chmod 777 -R $MAIN_WWW_DIR/doc
114 ;;
115 bugs)
116 [ -d $SLITAZ_DIR/bugs ] || mkdir -p $SLITAZ_DIR/bugs
117 [ -d $MAIN_WWW_DIR/bugs ] || mkdir -p $MAIN_WWW_DIR/bugs
118 [ -d $REPOS_DIR/slitaz-forge/bugs ] && cp -a $REPOS_DIR/slitaz-forge/bugs/roundup.wsgi $SLITAZ_DIR/bugs/roundup.wsgi
119 [ -d $REPOS_DIR/slitaz-forge/bugs ] && cp -a $REPOS_DIR/slitaz-forge/bugs/server.ini $SLITAZ_DIR/bugs/server.ini
120 [ -d $REPOS_DIR/slitaz-forge/bugs/templates/slitaz ] && cp -a $REPOS_DIR/slitaz-forge/bugs/templates/slitaz/* $SLITAZ_DIR/bugs
121 [ -f /usr/share/roundup/cgi-bin/roundup.cgi ] && ln -sf /usr/share/roundup/cgi-bin/roundup.cgi $MAIN_WWW_DIR/bugs/roundup.cgi
122 ;;
123 pizza)
124 [ -d $PIZZA_WWW_DIR ] && ln -sf $PIZZA_WWW_DIR $MAIN_WWW_DIR/pizza
125 ;;
126 bb)
127 [ -d /usr/share/slitaz/web-bb ] && cp -a /usr/share/slitaz/web-bb $MAIN_WWW_DIR/bb
128 #[ -d /usr/share/slitaz/web ] && cp -a /usr/share/slitaz/web $MAIN_WWW_DIR/bb/web
129 [ -d $REPOS_DIR/website/images ] && ln -sf $REPOS_DIR/website/images $MAIN_WWW_DIR/bb/images
130 [ -d $INCOMING_REPOSITORY ] || mkdir -p $INCOMING_REPOSITORY
131 [ -f $INCOMING_REPOSITORY/packages.desc ] || touch $INCOMING_REPOSITORY/packages.desc
132 [ -f $INCOMING_REPOSITORY/packages.equiv ] || touch $INCOMING_REPOSITORY/packages.equiv
133 [ -f $INCOMING_REPOSITORY/packages.list ] || touch $INCOMING_REPOSITORY/packages.list
134 [ -f $INCOMING_REPOSITORY/packages.md5 ] || touch $INCOMING_REPOSITORY/packages.md5
135 [ -f $INCOMING_REPOSITORY/packages.txt ] || touch $INCOMING_REPOSITORY/packages.txt
136 [ -d $PKGDIR ] && ln -sf $PKGDIR $COOKING/packages
137 [ -d $SRCDIR ] && ln -sf $SRCDIR $COOKING/src
138 if [ "$CUSTOM_WOK" = "yes" ]; then
139 tazwok gen-wok-db --WOK=$REPO_WOK
140 if [ -f $COOKORDER ]; then
141 [ -d $COOKING/wok ] || mkdir -p $COOKING/wok
142 [ -d $COOKING/clean-wok ] || mkdir -p $COOKING/clean-wok
143 cat $COOKORDER | while read pkg; do
144 rwanted=$(grep $'\t'$pkg$ $INCOMING_REPOSITORY/wok-wanted.txt | cut -f 1)
145 for i in $rwanted; do
146 [ -f $COOKING/clean-wok/$i/receipt ] || cp -a $REPO_WOK/$i $COOKING/clean-wok/$i
147 [ -f $COOKING/wok/$i/receipt ] || cp -a $REPO_WOK/$i $COOKING/wok/$i
148 done
149 [ -f $COOKING/clean-wok/$pkg/receipt ] || cp -a $REPO_WOK/$pkg $COOKING/clean-wok/$pkg
150 [ -f $COOKING/wok/$pkg/receipt ] || cp -a $REPO_WOK/$pkg $COOKING/wok/$pkg
151 done
152 unset i
153 tazwok gen-wok-db --WOK=$COOKING/clean-wok
154 fi
155 else
156 [ -d $COOKING/clean-wok ] || ln -sf $REPO_WOK $COOKING/clean-wok
157 [ -d $COOKING/wok ] || ln -sf $REPO_WOK $COOKING/wok
158 fi
159 [ -d $STABLE/clean-wok ] || ln -sf $REPOS_DIR/wok-stable $STABLE/clean-wok
160 [ -d $STABLE/wok ] || ln -sf $REPOS_DIR/wok-stable $STABLE/wok
161 [ -f $SRCDIR/sources.list ] || tazwok gen-src $SRCDIR --WOK=$REPO_WOK
162 [ -d $REPOS_DIR/slitaz-modular ] && ln -sf $REPOS_DIR/slitaz-modular $COOKING/slitaz-modular
163 echo -e "$MAIN_WWW_DIR/bb" | tazwok webserver on
164 ;;
165 cook)
166 #pwd=$(pwd)
167 #if [ -d $REPOS_DIR/my-cookutils ]; then
168 # cd $REPOS_DIR/my-cookutils
169 # if [ "$(hg branch)" != "testing" ]; then
170 # hg update testing
171 # fi
172 # make install
173 # cd $pwd
174 #fi
175 echo "$SLITAZ_DIR/$version/packages" > $LOCALSTATE/mirror
176 [ -d $LOCALSTATE/undigest/incoming ] || mkdir -p $LOCALSTATE/undigest/incoming
177 [ -f $LOCALSTATE/undigest/incoming/mirror ] || echo "$INCOMING" > $LOCALSTATE/undigest/incoming/mirror
178 echo "incoming" > $LOCALSTATE/priority
179 [ -d $SLITAZ_DIR/$version/incoming ] || mkdir -p $SLITAZ_DIR/$version/incoming
180 [ -d /var/www/cooker ] && cp -a /var/www/cooker $MAIN_WWW_DIR/cook
181 [ -f /usr/share/cook/header.html ] && cp -a /usr/share/cook/header.html $MAIN_WWW_DIR/cook/header.html
182 if [ "$MKCHROOT" = "yes" ]; then
183 if [ -d $PKGDIR ]; then
184 tazpkg recharge
185 tazdev gen-chroot $version
186 [ -d $SLITAZ_DIR/$version/chroot ] && mkdir -p $SLITAZ_DIR/$version/chroot$(dirname $CRON_FILE)
187 [ -d $SLITAZ_DIR/$version/chroot ] && echo "0 */2 * * * /usr/bin/cooker" > $SLITAZ_DIR/$version/chroot${CRON_FILE}
188 [ -d $SLITAZ_DIR/$version/chroot ] && echo "$SLITAZ_DIR/$version/packages" > $SLITAZ_DIR/$version/chroot${LOCALSTATE}/mirror
189 mkdir -p $SLITAZ_DIR/$version/chroot${LOCALSTATE}/undigest/incoming
190 echo "$SLITAZ_DIR/$version/incoming" > $SLITAZ_DIR/$version/chroot${LOCALSTATE}/undigest/incoming/mirror
191 fi
192 fi
193 [ -d $REPOS_DIR/wok-tank ] && ln -sf $REPOS_DIR/wok-tank $SLITAZ_DIR/$version/wok-hg
194 #[ -d $REPOS_DIR/wok-tank ] && ln -sf $REPOS_DIR/wok-tank $SLITAZ_DIR/$version/wok
195 [ -d $MAIN_WWW_DIR/cook/packages ] || ln -sf $SLITAZ_DIR/$version/packages $MAIN_WWW_DIR/cook/packages
196 [ -d $MAIN_WWW_DIR/cook/incoming ] || ln -sf $SLITAZ_DIR/$version/incoming $MAIN_WWW_DIR/cook/incoming
197 ;;
198 pkgs)
199 [ -d $MAIN_WWW_DIR/pkgs ] || mkdir -p $MAIN_WWW_DIR/pkgs
200 pwd=$(pwd)
201 #if [ -d $REPOS_DIR/slitaz-dev-tools/tazpkg-web ]; then
202 # cd $REPOS_DIR/slitaz-dev-tools/tazpkg-web
203 # make install
204 # cd $pwd
205 #fi
206 [ -d /var/lib/tazpkg-web/style ] && cp -a /var/lib/tazpkg-web/style/* $MAIN_WWW_DIR/pkgs
207 [ -f /var/lib/tazpkg-web/search.cgi ] && cp -a /var/lib/tazpkg-web/search.cgi $MAIN_WWW_DIR/pkgs
208 #[ -d $REPOS_DIR/slitaz-dev-tools/tazpkg-web/style ] && cp -a $REPOS_DIR/slitaz-dev-tools/tazpkg-web/style/* $MAIN_WWW_DIR/pkgs
209 #[ -f $REPOS_DIR/slitaz-dev-tools/tazpkg-web/search.cgi ] && cp -a $REPOS_DIR/slitaz-dev-tools/tazpkg-web/search.cgi $MAIN_WWW_DIR/pkgs
210 [ -d $REPOS_DIR/flavors ] && ln -sf $REPOS_DIR/flavors $COOKING/flavors
211 #[ -d $REPOS_DIR/flavors-stable ] && ln -sf $REPOS_DIR/flavors-stable $STABLE/flavors
212 #[ -d $COOKING/wok ] || ln -sf $REPOS_DIR/wok $COOKING/clean-wok
213 #[ -d $STABLE/clean-wok ] || ln -sf $REPOS_DIR/wok-stable $STABLE/clean-wok
214 if [ -f "/usr/bin/tazpkg-web" ]; then
215 tazpkg-web cooking
216 if [ ! $(grep -l "/usr/bin/tazpkg-web cooking" $CRON_FILE) ]; then
217 echo "# Update pkgs.slitaz.org pages" >> $CRON_FILE
218 echo "20 02 * * * /usr/bin/tazpkg-web cooking" >> $CRON_FILE
219 fi
220 fi
221 ;;
222 mirror)
223 [ -d $REPOS_DIR/slitaz-dev-tools/mirror-tools/mirror-info ] && cp -a $REPOS_DIR/slitaz-dev-tools/mirror-tools/mirror-info $MAIN_WWW_DIR
224 [ -d $REPOS_DIR/slitaz-dev-tools/mirror-tools/slitaz ] && cp -a $REPOS_DIR/slitaz-dev-tools/mirror-tools/slitaz $MAIN_WWW_DIR
225 [ -d $MAIN_WWW_DIR/slitaz/mirror/packages ] || mkdir -p $MAIN_WWW_DIR/slitaz/mirror/packages
226 [ -d $PKGDIR ] && ln -sf $PKGDIR $MAIN_WWW_DIR/slitaz/mirror/packages/$version
227 [ -d /var/www/slitaz ] || ln -sf $MAIN_WWW_DIR/slitaz /var/www/slitaz
228 [ -d /var/www/mirror-info ] || ln -sf $MAIN_WWW_DIR/mirror-info /var/www/mirror-info
229 if [ -f /var/www/mirror-info/bin/makegraphs ]; then
230 if [ ! $(grep -l "/var/www/mirror-info/bin/makegraphs" $CRON_FILE) ]; then
231 echo "# Update mirror system load graphics" >> $CRON_FILE
232 echo "*/5 * * * * /var/www/mirror-info/bin/makegraphs" >> $CRON_FILE
233 fi
234 fi
235 ;;
236 boot)
237 [ -d $BOOT_WWW_DIR ] && cp -a $BOOT_WWW_DIR $MAIN_WWW_DIR/$b
238 #[ -d $REPOS_DIR/website/pics ] && ln -sf $REPOS_DIR/website/images $MAIN_WWW_DIR/$b/images
239 ;;
240 tank)
241 [ -d $TANK_WWW_DIR ] && ln -sf $TANK_WWW_DIR $MAIN_WWW_DIR/$b
242 [ -f /usr/share/awstats/extras/update ] && ln -sf /usr/share/awstats/extras/update /usr/sbin/awsupdate_all
243 [ -d $REPOS_DIR/slitaz-forge/$b/files/etc/awstats ] && cp -a $REPOS_DIR/slitaz-forge/$b/files/etc/awstats/* /etc/awstats
244 for i in $ADDRESS; do
245 if [ -f /etc/awstats/awstats.$i.conf ]; then
246 dirlog=$(grep ^DirData= /etc/awstats/awstats.$i.conf | cut -d "=" -f2 | sed -e 's/"//g')
247 mkdir -p $dirlog
248 fi
249 done
250 if [ -f /usr/share/awstats/extras/update ]; then
251 if [ ! $(grep -l "/usr/share/awstats/extras/update" $CRON_FILE) ]; then
252 echo "# Update Web stats" >> $CRON_FILE
253 echo "*/5 * * * * /usr/share/awstats/extras/update" >> $CRON_FILE
254 fi
255 fi
256 if [ -f $MAIN_WWW_DIR/tank/bin/makegraphs ]; then
257 if [ ! $(grep -l "$MAIN_WWW_DIR/tank/bin/makegraphs" $CRON_FILE) ]; then
258 echo "# Update tank system load graphics" >> $CRON_FILE
259 echo "*/5 * * * * $MAIN_WWW_DIR/tank/bin/makegraphs" >> $CRON_FILE
260 fi
261 fi
262 ;;
263 hg)
264 [ -d $MAIN_WWW_DIR/hg ] || mkdir -p $MAIN_WWW_DIR/hg
265 [ -f /usr/share/examples/mercurial/hgwebdir.cgi ] && cp -a /usr/share/examples/mercurial/hgwebdir.cgi $MAIN_WWW_DIR/hg
266 [ -f /usr/share/examples/mercurial/hgwebdir.cgi ] && cp -a /usr/share/examples/mercurial/hgwebdir.cgi $MAIN_WWW_DIR/hg/hgwebdir.py
267 [ -f $REPOS_DIR/slitaz-forge/tank/files/etc/mercurial/hgweb.config ] && cp -a $REPOS_DIR/slitaz-forge/tank/files/etc/mercurial/hgweb.config /etc/mercurial
268 [ -f $REPOS_DIR/slitaz-forge/tank/files/etc/mercurial/hgweb.config-mirror ] && cp -a $REPOS_DIR/slitaz-forge/tank/files/etc/mercurial/hgweb.config-mirror /etc/mercurial
269 sed -i 's|/etc/mercurial/hgweb.config|/etc/mercurial/hgweb.config-mirror|g' $MAIN_WWW_DIR/hg/hgwebdir.py
270 #[ -f /etc/mercurial/hgweb.conf ] && sed -i 's|style = slitaz|style = gitweb|g' /etc/mercurial/hgweb.config
271 ;;
272 lfs)
273 [ -d $MAIN_WWW_DIR/lfs ] || ln -sf /usr/share/doc/lfs-book $MAIN_WWW_DIR/lfs ;;
274 hgbook)
275 if [ -d /usr/share/hgbook ]; then
276 [ -d $MAIN_WWW_DIR/hgbook ] || ln -sf /usr/share/hgbook $MAIN_WWW_DIR/hgbook
277 fi ;;
278 absguide)
279 if [ -d /usr/share/absguide ]; then
280 [ -d $MAIN_WWW_DIR/absguide ] || ln -sf /usr/share/absguide $MAIN_WWW_DIR/absguide
281 fi ;;
282 gimp.en)
283 if [ -d /usr/share/gimp/2.0/help/en ]; then
284 [ -d $MAIN_WWW_DIR/gimp_en ] || ln -sf /usr/share/gimp/2.0/help/en $MAIN_WWW_DIR/gimp_en
285 fi ;;
286 gimp.fr)
287 if [ -d /usr/share/gimp/2.0/help/fr ]; then
288 [ -d $MAIN_WWW_DIR/gimp_fr ] || ln -sf /usr/share/gimp/2.0/help/fr $MAIN_WWW_DIR/gimp_fr
289 fi ;;
290 gimp.es)
291 if [ -d /usr/share/gimp/2.0/help/es ]; then
292 [ -d $MAIN_WWW_DIR/gimp_es ] || ln -sf /usr/share/gimp/2.0/help/es $MAIN_WWW_DIR/gimp_es
293 fi ;;
294 esac
295 }
297 repos() {
298 for repo in $REPOS; do
299 [ -d $REPOS_DIR/$repo ] || continue
300 if [ -d $REPOS_DIR/$repo/.hg ]; then
301 mkdir -p $REPOS_WEB_DIR/$repo
302 [ -d $REPOS_WEB_DIR/$repo/.hg ] || ln -s $REPOS_DIR/$repo/.hg $REPOS_WEB_DIR/$repo/.hg
303 if [ ! $(grep -l "$REPOS_WEB_DIR" /etc/mercurial/hgweb.config) ]; then
304 [ -f /etc/mercurial/hgweb.config ] && sed -i "s|$REPOS_DIR|$REPOS_WEB_DIR|g" /etc/mercurial/hgweb.config
305 fi
306 fi
307 if [ ! -f $REPOS_DIR/$repo/.hg/hgrc-web ]; then
308 touch $REPOS_DIR/$repo/.hg/hgrc-web
309 cat "$REPOS_DIR/$repo/.hg/hgrc" >> $REPOS_DIR/$repo/.hg/hgrc-web
310 echo "[web]" >> $REPOS_DIR/$repo/.hg/hgrc-web
311 #[ -d $REPOS_DIR/$repo/.hg ] && echo "style = slitaz" >> $REPOS_DIR/$repo/.hg/hgrc-web
312 echo "staticurl = http://hg.slitaz.org/static/" >> $REPOS_DIR/$repo/.hg/hgrc-web
313 echo "push_ssl = false" >> $REPOS_DIR/$repo/.hg/hgrc-web
314 echo "allow_push = *" >> $REPOS_DIR/$repo/.hg/hgrc-web
315 #[ ! -f $REPOS_DIR/$repo/.hg/hgrc-pull ] && mv $REPOS_DIR/$repo/.hg/hgrc $REPOS_DIR/$repo/.hg/hgrc-pull
316 cp -a $REPOS_DIR/$repo/.hg/hgrc-web $REPOS_DIR/$repo/.hg/hgrc
317 fi
319 if [ ! $(grep -l 'name = ' $REPOS_DIR/$repo/.hg/hgrc ) ]; then
320 echo "name = $repo" >> $REPOS_DIR/$repo/.hg/hgrc
321 fi
323 if [ ! $(grep -l 'contact = ' $REPOS_DIR/$repo/.hg/hgrc ) ]; then
324 [ "$repo" = "cookutils" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
325 [ "$repo" = "my-cookutils" ] && echo "contact = Christopher Rogers" >> $REPOS_DIR/$repo/.hg/hgrc
326 [ "$repo" = "flavors" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
327 [ "$repo" = "flavors-stable" ] && echo "contact = Pascal Bellard" >> $REPOS_DIR/$repo/.hg/hgrc
328 [ "$repo" = "slitaz-base-files" ] && echo "contact = Pascal Bellard" >> $REPOS_DIR/$repo/.hg/hgrc
329 [ "$repo" = "slitaz-boot-scripts" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
330 [ "$repo" = "slitaz-configs" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
331 [ "$repo" = "slitaz-dev-tools" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
332 [ "$repo" = "slitaz-doc" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
333 [ "$repo" = "slitaz-doc-wiki-data" ] && echo "contact = Christopher Rogers" >> $REPOS_DIR/$repo/.hg/hgrc
334 [ "$repo" = "slitaz-forge" ] && echo "contact = Eric Joseph-Alexandre" >> $REPOS_DIR/$repo/.hg/hgrc
335 [ "$repo" = "slitaz-modular" ] && echo "contact = Christopher Rogers" >> $REPOS_DIR/$repo/.hg/hgrc
336 [ "$repo" = "slitaz-pizza" ] && echo "contact = Pascal Bellard" >> $REPOS_DIR/$repo/.hg/hgrc
337 [ "$repo" = "slitaz-tools" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
338 [ "$repo" = "slitaz-vz" ] && echo "contact = Eric Joseph-Alexandre" >> $REPOS_DIR/$repo/.hg/hgrc
339 [ "$repo" = "ssfs" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
340 [ "$repo" = "tazlito" ] && echo "contact = Pascal Bellard" >> $REPOS_DIR/$repo/.hg/hgrc
341 [ "$repo" = "tazpanel" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
342 [ "$repo" = "tazpkg" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
343 [ "$repo" = "tazusb" ] && echo "contact = Eric Joseph-Alexandre" >> $REPOS_DIR/$repo/.hg/hgrc
344 [ "$repo" = "tazwok" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
345 [ "$repo" = "website" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
346 [ "$repo" = "wok" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
347 [ "$repo" = "wok-stable" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
348 [ "$repo" = "wok-tank" ] && echo "contact = Christopher Rogers" >> $REPOS_DIR/$repo/.hg/hgrc
349 [ "$repo" = "wok-tiny" ] && echo "contact = Pascal Bellard" >> $REPOS_DIR/$repo/.hg/hgrc
350 [ "$repo" = "wok-undigest" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
351 fi
353 if [ ! $(grep -l 'description = ' $REPOS_DIR/$repo/.hg/hgrc) ]; then
354 [ "$repo" = "cookutils" ] && echo "description = Utils to cook SliTaz packages" >> $REPOS_DIR/$repo/.hg/hgrc
355 [ "$repo" = "my-cookutils" ] && echo "description = More powerful version of cookutils" >> $REPOS_DIR/$repo/.hg/hgrc
356 [ "$repo" = "flavors" ] && echo "description = SliTaz Cooking flavors" >> $REPOS_DIR/$repo/.hg/hgrc
357 [ "$repo" = "flavors-stable" ] && echo "description = SliTaz Stable flavors" >> $REPOS_DIR/$repo/.hg/hgrc
358 [ "$repo" = "slitaz-base-files" ] && echo "description = SliTaz base files" >> $REPOS_DIR/$repo/.hg/hgrc
359 [ "$repo" = "slitaz-boot-scripts" ] && echo "description = SliTaz boot scripts" >> $REPOS_DIR/$repo/.hg/hgrc
360 [ "$repo" = "slitaz-configs" ] && echo "description = SliTaz configuration files" >> $REPOS_DIR/$repo/.hg/hgrc
361 [ "$repo" = "slitaz-dev-tools" ] && echo "description = SliTaz Developers Tools" >> $REPOS_DIR/$repo/.hg/hgrc
362 [ "$repo" = "slitaz-doc" ] && echo "description = SliTaz system doc" >> $REPOS_DIR/$repo/.hg/hgrc
363 [ "$repo" = "slitaz-doc-wiki-data" ] && echo "description = SliTaz documentation wiki content" >> $REPOS_DIR/$repo/.hg/hgrc
364 [ "$repo" = "slitaz-forge" ] && echo "description = SliTaz Forge Config" >> $REPOS_DIR/$repo/.hg/hgrc
365 [ "$repo" = "slitaz-modular" ] && echo "description = Scripts to make SliTaz Modular" >> $REPOS_DIR/$repo/.hg/hgrc
366 [ "$repo" = "slitaz-pizza" ] && echo "description = SliTaz Online flavor builder" >> $REPOS_DIR/$repo/.hg/hgrc
367 [ "$repo" = "slitaz-tools" ] && echo "description = SliTaz Tools and Tinyutils" >> $REPOS_DIR/$repo/.hg/hgrc
368 [ "$repo" = "slitaz-vz" ] && echo "description = SliTaz OpenVZ integration" >> $REPOS_DIR/$repo/.hg/hgrc
369 [ "$repo" = "ssfs" ] && echo "description = SliTaz Secure File Storage" >> $REPOS_DIR/$repo/.hg/hgrc
370 [ "$repo" = "tazlito" ] && echo "description = SliTaz Live Tool" >> $REPOS_DIR/$repo/.hg/hgrc
371 [ "$repo" = "tazpanel" ] && echo "description = Slitaz Administration Panel" >> $REPOS_DIR/$repo/.hg/hgrc
372 [ "$repo" = "tazpkg" ] && echo "description = SliTaz Packages manager" >> $REPOS_DIR/$repo/.hg/hgrc
373 [ "$repo" = "tazusb" ] && echo "description = SliTaz LiveUSB utility" >> $REPOS_DIR/$repo/.hg/hgrc
374 [ "$repo" = "tazwok" ] && echo "description = SliTaz Packages builder" >> $REPOS_DIR/$repo/.hg/hgrc
375 [ "$repo" = "website" ] && echo "description = SliTaz Website" >> $REPOS_DIR/$repo/.hg/hgrc
376 [ "$repo" = "wok" ] && echo "description = SliTaz Cooking wok" >> $REPOS_DIR/$repo/.hg/hgrc
377 [ "$repo" = "wok-stable" ] && echo "description = SliTaz Stable wok" >> $REPOS_DIR/$repo/.hg/hgrc
378 [ "$repo" = "wok-tank" ] && echo "description = SliTaz Tank Mirror wok" >> $REPOS_DIR/$repo/.hg/hgrc
379 [ "$repo" = "wok-tiny" ] && echo "description = Tiny SliTaz wok" >> $REPOS_DIR/$repo/.hg/hgrc
380 [ "$repo" = "wok-undigest" ] && echo "description = SliTaz Undigest wok" >> $REPOS_DIR/$repo/.hg/hgrc
381 fi
382 done
383 }
385 up_src_links() {
386 local i
387 if [ -d $SRCDIR ]; then
388 [ -d $MAIN_WWW_DIR/slitaz/mirror/sources/packages ] && rm -rf $MAIN_WWW_DIR/slitaz/mirror/sources/packages
389 for i in $(ls $SRCDIR); do
390 [ -d $MAIN_WWW_DIR/slitaz/mirror/sources/packages/${i:0:1} ] || mkdir -p $MAIN_WWW_DIR/slitaz/mirror/sources/packages/${i:0:1}
391 [ -f $MAIN_WWW_DIR/slitaz/mirror/sources/packages/${i:0:1}/$i ] || ln -sf $SRCDIR/$i $MAIN_WWW_DIR/slitaz/mirror/sources/packages/${i:0:1}/$i
392 done
393 fi
394 }
396 case "$COMMAND" in
397 start|on|tank-only|mirror-only)
398 [ -d $MAIN_WWW_DIR/mirror-info ] && WWW="${WWW/mirror /}"
399 for c in $WWW; do
400 if [ ! -d $MAIN_WWW_DIR/$c ]; then
401 www $c
402 [ "$c" = "hg" ] && repos
403 fi
404 done
405 echo "127.0.0.1 localhost $(cat /etc/hostname)" > /etc/hosts
406 [ "$IP_ADDR" == "127.0.0.1" ] && echo "127.0.0.1 tazpanel tazpanel.slitaz.org" >> /etc/hosts
407 for hostname in $ADDRESS; do
408 if [ "$hostname" = "www.slitaz.org" ]; then
409 echo "$IP_ADDR $hostname slitaz.org" >> /etc/hosts
410 else
411 echo "$IP_ADDR $hostname" >> /etc/hosts
412 fi
413 done
414 if [ ! -L /usr/share/awstats/icon/other/slitaz-spider-48x48.png ]; then
415 ln -s /repos/website/images/artwork/slitaz-spider-48x48.png /usr/share/awstats/icon/other/slitaz-spider-48x48.png
416 fi
417 if [ "$IP_ADDR" != "127.0.0.1" ]; then
418 if [ ! $(grep -l "dhcp-option=option:router,$ROUTER_IP" /etc/dnsmasq.conf) ]; then
419 echo "$IP_ADDR tazpanel tazpanel.slitaz.org" >> /etc/hosts
420 echo "dhcp-option=option:router,$ROUTER_IP" >> /etc/dnsmasq.conf
421 fi
422 fi
423 if [ -d "$SLITAZ_DIR/$version/packages" ]; then
424 echo "$SLITAZ_DIR/$version/packages" > $LOCALSTATE/mirror
425 fi
426 if [ "$COMMAND" = "tank-only" ]; then
427 [ -f $VHOST_TANK_FILE ] && ln -sf $VHOST_TANK_FILE /etc/lighttpd/vhosts.conf
428 elif [ "$COMMAND" = "mirror-only" ]; then
429 [ -f $VHOST_MIRROR_FILE ] && ln -sf $VHOST_MIRROR_FILE /etc/lighttpd/vhosts.conf
430 else
431 [ -f $VHOST_FILE ] && ln -sf $VHOST_FILE /etc/lighttpd/vhosts.conf
432 fi
433 chown -R www.www $SLITAZ_DIR/www
434 up_src_links
435 [ -x /etc/init.d/lighttpd ] && /etc/init.d/lighttpd start
436 [ -x /etc/init.d/crond ] && /etc/init.d/crond start
437 ;;
438 update-repos)
439 pwd=$(pwd)
440 for i in $(ls $REPOS_DIR); do
441 if [ -d $REPOS_DIR/$i/.hg ]; then
442 cd $REPOS_DIR/$i
443 echo "Updaing $i repo..."
444 hg pull -u
445 fi
446 done
447 cd $pwd
448 ;;
449 up-src-links)
450 up_src_links
451 ;;
452 backup-mirror|-bm)
453 case "$2" in
454 pkgs-dry-push)
455 rsync -avrtlz --delete --dry-run $PKGDIR ${sync_mirror} ;;
456 src-dry-push)
457 rsync -avrtlz --delete --dry-run $SRCDIR ${sync_mirror} ;;
458 repos-dry-push)
459 rsync -avrtlz --delete --dry-run $REPOS_DIR ${sync_mirror} ;;
460 pkgs-push)
461 rsync -avrtlz --delete $PKGDIR ${sync_mirror} ;;
462 src-push)
463 rsync -avrtlz --delete $SRCDIR ${sync_mirror} ;;
464 repos-push)
465 rsync -avrtlz --delete $REPOS_DIR ${sync_mirror} ;;
466 pkgs-dry-pull)
467 rsync -avrtlz --delete --dry-run ${sync_mirror}${PKGDIR} $(dirname ${PKGDIR}) ;;
468 src-dry-pull)
469 rsync -avrtlz --delete --dry-run ${sync_mirror}${SRCDIR} $(dirname ${SRCDIR}) ;;
470 repos-dry-pull)
471 rsync -avrtlz --delete --dry-run ${sync_mirror}${REPOS_DIR} $(dirname ${REPOS_DIR}) ;;
472 pkgs-pull)
473 rsync -avrtlz --delete ${sync_mirror}${PKGDIR} $(dirname ${PKGDIR}) ;;
474 src-pull)
475 rsync -avrtlz --delete ${sync_mirror}${SRCDIR} $(dirname ${SRCDIR}) ;;
476 repos-pull)
477 rsync -avrtlz --delete ${sync_mirror}${REPOS_DIR} $(dirname ${REPOS_DIR}) ;;
478 *)
479 echo "$0 backup-mirror pkgs-dry-{push|pull}"
480 echo "$0 backup-mirorr pkgs-{push|pull}"
481 echo "$0 backup-mirror src-dry-{push|pull}"
482 echo "$0 backup-mirror src-{push|pull}"
483 echo "$0 backup-mirror repos-dry-{push|pull}"
484 echo "$0 backup-mirror repos-{push|pull}" ;;
485 esac ;;
486 off|stop)
487 [ -x /etc/init.d/lighttpd ] && /etc/init.d/lighttpd stop
488 [ -x /etc/init.d/crond ] && /etc/init.d/crond stop
489 echo "127.0.0.1 localhost $(cat /etc/hostname) tazpanel" > /etc/hosts
490 exit 1
491 ;;
492 *)
493 usage
494 ;;
495 esac