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

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