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

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