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

local-mirror: Fixed cook website to not build chroot if $PKGDIR folder doesn't exist. Made sure to sed out pkgs.slitaz.org if there is no $PKGDIR folder. Add attic to local doc.slitaz.org so you can see history of it.
author Christopher Rogers <slaxemulator@gmail.com>
date Fri Sep 16 03:00:30 2011 +0000 (2011-09-16)
parents 3ff3ff15c700
children e9ccf6ee0ae4
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 tazdev gen-chroot $version
185 [ -d $SLITAZ_DIR/$version/chroot ] && mkdir -p $SLITAZ_DIR/$version/chroot$(dirname $CRON_FILE)
186 [ -d $SLITAZ_DIR/$version/chroot ] && echo "0 */2 * * * /usr/bin/cooker" > $SLITAZ_DIR/$version/chroot${CRON_FILE}
187 [ -d $SLITAZ_DIR/$version/chroot ] && echo "$SLITAZ_DIR/$version/packages" > $SLITAZ_DIR/$version/chroot${LOCALSTATE}/mirror
188 mkdir -p $SLITAZ_DIR/$version/chroot${LOCALSTATE}/undigest/incoming
189 echo "$SLITAZ_DIR/$version/incoming" > $SLITAZ_DIR/$version/chroot${LOCALSTATE}/undigest/incoming/mirror
190 fi
191 fi
192 [ -d $REPOS_DIR/wok-tank ] && ln -sf $REPOS_DIR/wok-tank $SLITAZ_DIR/$version/wok-hg
193 #[ -d $REPOS_DIR/wok-tank ] && ln -sf $REPOS_DIR/wok-tank $SLITAZ_DIR/$version/wok
194 [ -d $MAIN_WWW_DIR/cook/packages ] || ln -sf $SLITAZ_DIR/$version/packages $MAIN_WWW_DIR/cook/packages
195 [ -d $MAIN_WWW_DIR/cook/incoming ] || ln -sf $SLITAZ_DIR/$version/incoming $MAIN_WWW_DIR/cook/incoming
196 ;;
197 pkgs)
198 [ -d $MAIN_WWW_DIR/pkgs ] || mkdir -p $MAIN_WWW_DIR/pkgs
199 pwd=$(pwd)
200 if [ -d $REPOS_DIR/slitaz-dev-tools/tazpkg-web ]; then
201 cd $REPOS_DIR/slitaz-dev-tools/tazpkg-web
202 make install
203 cd $pwd
204 fi
205 #[ -d /var/lib/tazpkg-web/style ] && cp -a /var/lib/tazpkg-web/style/* $MAIN_WWW_DIR/pkgs
206 #[ -f /var/lib/tazpkg-web/search.cgi ] && cp -a /var/lib/tazpkg-web/search.cgi $MAIN_WWW_DIR/pkgs
207 [ -d $REPOS_DIR/slitaz-dev-tools/tazpkg-web/style ] && cp -a $REPOS_DIR/slitaz-dev-tools/tazpkg-web/style/* $MAIN_WWW_DIR/pkgs
208 [ -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
209 [ -d $REPOS_DIR/flavors ] && ln -sf $REPOS_DIR/flavors $COOKING/flavors
210 #[ -d $REPOS_DIR/flavors-stable ] && ln -sf $REPOS_DIR/flavors-stable $STABLE/flavors
211 #[ -d $COOKING/wok ] || ln -sf $REPOS_DIR/wok $COOKING/clean-wok
212 #[ -d $STABLE/clean-wok ] || ln -sf $REPOS_DIR/wok-stable $STABLE/clean-wok
213 if [ -f "/usr/bin/tazpkg-web" ]; then
214 tazpkg-web cooking
215 if [ ! $(grep -l "/usr/bin/tazpkg-web cooking" $CRON_FILE) ]; then
216 echo "# Update pkgs.slitaz.org pages" >> $CRON_FILE
217 echo "20 02 * * * /usr/bin/tazpkg-web cooking" >> $CRON_FILE
218 fi
219 fi
220 ;;
221 mirror)
222 [ -d $REPOS_DIR/slitaz-dev-tools/mirror-tools/mirror-info ] && cp -a $REPOS_DIR/slitaz-dev-tools/mirror-tools/mirror-info $MAIN_WWW_DIR
223 [ -d $REPOS_DIR/slitaz-dev-tools/mirror-tools/slitaz ] && cp -a $REPOS_DIR/slitaz-dev-tools/mirror-tools/slitaz $MAIN_WWW_DIR
224 [ -d $MAIN_WWW_DIR/slitaz/mirror/packages ] || mkdir -p $MAIN_WWW_DIR/slitaz/mirror/packages
225 [ -d $PKGDIR ] && ln -sf $PKGDIR $MAIN_WWW_DIR/slitaz/mirror/packages/$version
226 [ -d /var/www/slitaz ] || ln -sf $MAIN_WWW_DIR/slitaz /var/www/slitaz
227 [ -d /var/www/mirror-info ] || ln -sf $MAIN_WWW_DIR/mirror-info /var/www/mirror-info
228 if [ -f /var/www/mirror-info/bin/makegraphs ]; then
229 if [ ! $(grep -l "/var/www/mirror-info/bin/makegraphs" $CRON_FILE) ]; then
230 echo "# Update mirror system load graphics" >> $CRON_FILE
231 echo "*/5 * * * * /var/www/mirror-info/bin/makegraphs" >> $CRON_FILE
232 fi
233 fi
234 ;;
235 boot)
236 [ -d $BOOT_WWW_DIR ] && cp -a $BOOT_WWW_DIR $MAIN_WWW_DIR/$b
237 #[ -d $REPOS_DIR/website/pics ] && ln -sf $REPOS_DIR/website/images $MAIN_WWW_DIR/$b/images
238 ;;
239 tank)
240 [ -d $TANK_WWW_DIR ] && ln -sf $TANK_WWW_DIR $MAIN_WWW_DIR/$b
241 [ -f /usr/share/awstats/extras/update ] && ln -sf /usr/share/awstats/extras/update /usr/sbin/awsupdate_all
242 [ -d $REPOS_DIR/slitaz-forge/$b/files/etc/awstats ] && cp -a $REPOS_DIR/slitaz-forge/$b/files/etc/awstats/* /etc/awstats
243 for i in $ADDRESS; do
244 if [ -f /etc/awstats/awstats.$i.conf ]; then
245 dirlog=$(grep ^DirData= /etc/awstats/awstats.$i.conf | cut -d "=" -f2 | sed -e 's/"//g')
246 mkdir -p $dirlog
247 fi
248 done
249 if [ -f /usr/share/awstats/extras/update ]; then
250 if [ ! $(grep -l "/usr/share/awstats/extras/update" $CRON_FILE) ]; then
251 echo "# Update Web stats" >> $CRON_FILE
252 echo "*/5 * * * * /usr/share/awstats/extras/update" >> $CRON_FILE
253 fi
254 fi
255 if [ -f $MAIN_WWW_DIR/tank/bin/makegraphs ]; then
256 if [ ! $(grep -l "$MAIN_WWW_DIR/tank/bin/makegraphs" $CRON_FILE) ]; then
257 echo "# Update tank system load graphics" >> $CRON_FILE
258 echo "*/5 * * * * $MAIN_WWW_DIR/tank/bin/makegraphs" >> $CRON_FILE
259 fi
260 fi
261 ;;
262 hg)
263 [ -d $MAIN_WWW_DIR/hg ] || mkdir -p $MAIN_WWW_DIR/hg
264 [ -f /usr/share/examples/mercurial/hgwebdir.cgi ] && cp -a /usr/share/examples/mercurial/hgwebdir.cgi $MAIN_WWW_DIR/hg
265 [ -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
266 #[ -f /etc/mercurial/hgweb.conf ] && sed -i 's|style = slitaz|style = gitweb|g' /etc/mercurial/hgweb.config
267 ;;
268 lfs)
269 [ -d $MAIN_WWW_DIR/lfs ] || ln -sf /usr/share/doc/lfs-book $MAIN_WWW_DIR/lfs ;;
270 hgbook)
271 if [ -d /usr/share/hgbook ]; then
272 [ -d $MAIN_WWW_DIR/hgbook ] || ln -sf /usr/share/hgbook $MAIN_WWW_DIR/hgbook
273 fi ;;
274 absguide)
275 if [ -d /usr/share/absguide ]; then
276 [ -d $MAIN_WWW_DIR/absguide ] || ln -sf /usr/share/absguide $MAIN_WWW_DIR/absguide
277 fi ;;
278 gimp.en)
279 if [ -d /usr/share/gimp/2.0/help/en ]; then
280 [ -d $MAIN_WWW_DIR/gimp_en ] || ln -sf /usr/share/gimp/2.0/help/en $MAIN_WWW_DIR/gimp_en
281 fi ;;
282 gimp.fr)
283 if [ -d /usr/share/gimp/2.0/help/fr ]; then
284 [ -d $MAIN_WWW_DIR/gimp_fr ] || ln -sf /usr/share/gimp/2.0/help/fr $MAIN_WWW_DIR/gimp_fr
285 fi ;;
286 gimp.es)
287 if [ -d /usr/share/gimp/2.0/help/es ]; then
288 [ -d $MAIN_WWW_DIR/gimp_es ] || ln -sf /usr/share/gimp/2.0/help/es $MAIN_WWW_DIR/gimp_es
289 fi ;;
290 esac
291 }
293 repos() {
294 for repo in $REPOS; do
295 [ -d $REPOS_DIR/$repo ] || continue
296 if [ -d $REPOS_DIR/$repo/.hg ]; then
297 mkdir -p $REPOS_WEB_DIR/$repo
298 [ -d $REPOS_WEB_DIR/$repo/.hg ] || ln -s $REPOS_DIR/$repo/.hg $REPOS_WEB_DIR/$repo/.hg
299 if [ ! $(grep -l "$REPOS_WEB_DIR" /etc/mercurial/hgweb.config) ]; then
300 [ -f /etc/mercurial/hgweb.config ] && sed -i "s|$REPOS_DIR|$REPOS_WEB_DIR|g" /etc/mercurial/hgweb.config
301 fi
302 fi
303 if [ ! -f $REPOS_DIR/$repo/.hg/hgrc-web ]; then
304 touch $REPOS_DIR/$repo/.hg/hgrc-web
305 cat "$REPOS_DIR/$repo/.hg/hgrc" >> $REPOS_DIR/$repo/.hg/hgrc-web
306 echo "[web]" >> $REPOS_DIR/$repo/.hg/hgrc-web
307 #[ -d $REPOS_DIR/$repo/.hg ] && echo "style = slitaz" >> $REPOS_DIR/$repo/.hg/hgrc-web
308 echo "staticurl = http://hg.slitaz.org/static/" >> $REPOS_DIR/$repo/.hg/hgrc-web
309 echo "push_ssl = false" >> $REPOS_DIR/$repo/.hg/hgrc-web
310 echo "allow_push = *" >> $REPOS_DIR/$repo/.hg/hgrc-web
311 #[ ! -f $REPOS_DIR/$repo/.hg/hgrc-pull ] && mv $REPOS_DIR/$repo/.hg/hgrc $REPOS_DIR/$repo/.hg/hgrc-pull
312 cp -a $REPOS_DIR/$repo/.hg/hgrc-web $REPOS_DIR/$repo/.hg/hgrc
313 fi
315 if [ ! $(grep -l 'name = ' $REPOS_DIR/$repo/.hg/hgrc ) ]; then
316 echo "name = $repo" >> $REPOS_DIR/$repo/.hg/hgrc
317 fi
319 if [ ! $(grep -l 'contact = ' $REPOS_DIR/$repo/.hg/hgrc ) ]; then
320 [ "$repo" = "cookutils" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
321 [ "$repo" = "my-cookutils" ] && echo "contact = Christopher Rogers" >> $REPOS_DIR/$repo/.hg/hgrc
322 [ "$repo" = "flavors" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
323 [ "$repo" = "flavors-stable" ] && echo "contact = Pascal Bellard" >> $REPOS_DIR/$repo/.hg/hgrc
324 [ "$repo" = "slitaz-base-files" ] && echo "contact = Pascal Bellard" >> $REPOS_DIR/$repo/.hg/hgrc
325 [ "$repo" = "slitaz-boot-scripts" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
326 [ "$repo" = "slitaz-configs" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
327 [ "$repo" = "slitaz-dev-tools" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
328 [ "$repo" = "slitaz-doc" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
329 [ "$repo" = "slitaz-doc-wiki-data" ] && echo "contact = Christopher Rogers" >> $REPOS_DIR/$repo/.hg/hgrc
330 [ "$repo" = "slitaz-forge" ] && echo "contact = Eric Joseph-Alexandre" >> $REPOS_DIR/$repo/.hg/hgrc
331 [ "$repo" = "slitaz-modular" ] && echo "contact = Christopher Rogers" >> $REPOS_DIR/$repo/.hg/hgrc
332 [ "$repo" = "slitaz-pizza" ] && echo "contact = Pascal Bellard" >> $REPOS_DIR/$repo/.hg/hgrc
333 [ "$repo" = "slitaz-tools" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
334 [ "$repo" = "slitaz-vz" ] && echo "contact = Eric Joseph-Alexandre" >> $REPOS_DIR/$repo/.hg/hgrc
335 [ "$repo" = "ssfs" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
336 [ "$repo" = "tazlito" ] && echo "contact = Pascal Bellard" >> $REPOS_DIR/$repo/.hg/hgrc
337 [ "$repo" = "tazpanel" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
338 [ "$repo" = "tazpkg" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
339 [ "$repo" = "tazusb" ] && echo "contact = Eric Joseph-Alexandre" >> $REPOS_DIR/$repo/.hg/hgrc
340 [ "$repo" = "tazwok" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
341 [ "$repo" = "website" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
342 [ "$repo" = "wok" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
343 [ "$repo" = "wok-stable" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
344 [ "$repo" = "wok-tank" ] && echo "contact = Christopher Rogers" >> $REPOS_DIR/$repo/.hg/hgrc
345 [ "$repo" = "wok-tiny" ] && echo "contact = Pascal Bellard" >> $REPOS_DIR/$repo/.hg/hgrc
346 [ "$repo" = "wok-undigest" ] && echo "contact = Christophe Lincoln" >> $REPOS_DIR/$repo/.hg/hgrc
347 fi
349 if [ ! $(grep -l 'description = ' $REPOS_DIR/$repo/.hg/hgrc) ]; then
350 [ "$repo" = "cookutils" ] && echo "description = Utils to cook SliTaz packages" >> $REPOS_DIR/$repo/.hg/hgrc
351 [ "$repo" = "my-cookutils" ] && echo "description = More powerful version of cookutils" >> $REPOS_DIR/$repo/.hg/hgrc
352 [ "$repo" = "flavors" ] && echo "description = SliTaz Cooking flavors" >> $REPOS_DIR/$repo/.hg/hgrc
353 [ "$repo" = "flavors-stable" ] && echo "description = SliTaz Stable flavors" >> $REPOS_DIR/$repo/.hg/hgrc
354 [ "$repo" = "slitaz-base-files" ] && echo "description = SliTaz base files" >> $REPOS_DIR/$repo/.hg/hgrc
355 [ "$repo" = "slitaz-boot-scripts" ] && echo "description = SliTaz boot scripts" >> $REPOS_DIR/$repo/.hg/hgrc
356 [ "$repo" = "slitaz-configs" ] && echo "description = SliTaz configuration files" >> $REPOS_DIR/$repo/.hg/hgrc
357 [ "$repo" = "slitaz-dev-tools" ] && echo "description = SliTaz Developers Tools" >> $REPOS_DIR/$repo/.hg/hgrc
358 [ "$repo" = "slitaz-doc" ] && echo "description = SliTaz system doc" >> $REPOS_DIR/$repo/.hg/hgrc
359 [ "$repo" = "slitaz-doc-wiki-data" ] && echo "description = SliTaz documentation wiki content" >> $REPOS_DIR/$repo/.hg/hgrc
360 [ "$repo" = "slitaz-forge" ] && echo "description = SliTaz Forge Config" >> $REPOS_DIR/$repo/.hg/hgrc
361 [ "$repo" = "slitaz-modular" ] && echo "description = Scripts to make SliTaz Modular" >> $REPOS_DIR/$repo/.hg/hgrc
362 [ "$repo" = "slitaz-pizza" ] && echo "description = SliTaz Online flavor builder" >> $REPOS_DIR/$repo/.hg/hgrc
363 [ "$repo" = "slitaz-tools" ] && echo "description = SliTaz Tools and Tinyutils" >> $REPOS_DIR/$repo/.hg/hgrc
364 [ "$repo" = "slitaz-vz" ] && echo "description = SliTaz OpenVZ integration" >> $REPOS_DIR/$repo/.hg/hgrc
365 [ "$repo" = "ssfs" ] && echo "description = SliTaz Secure File Storage" >> $REPOS_DIR/$repo/.hg/hgrc
366 [ "$repo" = "tazlito" ] && echo "description = SliTaz Live Tool" >> $REPOS_DIR/$repo/.hg/hgrc
367 [ "$repo" = "tazpanel" ] && echo "description = Slitaz Administration Panel" >> $REPOS_DIR/$repo/.hg/hgrc
368 [ "$repo" = "tazpkg" ] && echo "description = SliTaz Packages manager" >> $REPOS_DIR/$repo/.hg/hgrc
369 [ "$repo" = "tazusb" ] && echo "description = SliTaz LiveUSB utility" >> $REPOS_DIR/$repo/.hg/hgrc
370 [ "$repo" = "tazwok" ] && echo "description = SliTaz Packages builder" >> $REPOS_DIR/$repo/.hg/hgrc
371 [ "$repo" = "website" ] && echo "description = SliTaz Website" >> $REPOS_DIR/$repo/.hg/hgrc
372 [ "$repo" = "wok" ] && echo "description = SliTaz Cooking wok" >> $REPOS_DIR/$repo/.hg/hgrc
373 [ "$repo" = "wok-stable" ] && echo "description = SliTaz Stable wok" >> $REPOS_DIR/$repo/.hg/hgrc
374 [ "$repo" = "wok-tank" ] && echo "description = SliTaz Tank Mirror wok" >> $REPOS_DIR/$repo/.hg/hgrc
375 [ "$repo" = "wok-tiny" ] && echo "description = Tiny SliTaz wok" >> $REPOS_DIR/$repo/.hg/hgrc
376 [ "$repo" = "wok-undigest" ] && echo "description = SliTaz Undigest wok" >> $REPOS_DIR/$repo/.hg/hgrc
377 fi
378 done
379 }
381 up_src_links() {
382 local i
383 if [ -d $SRCDIR ]; then
384 [ -d $MAIN_WWW_DIR/slitaz/mirror/sources/packages ] && rm -rf $MAIN_WWW_DIR/slitaz/mirror/sources/packages
385 for i in $(ls $SRCDIR); do
386 [ -d $MAIN_WWW_DIR/slitaz/mirror/sources/packages/${i:0:1} ] || mkdir -p $MAIN_WWW_DIR/slitaz/mirror/sources/packages/${i:0:1}
387 [ -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
388 done
389 fi
390 }
392 case "$COMMAND" in
393 start|on|tank-only|mirror-only)
394 [ -d $MAIN_WWW_DIR/mirror-info ] && WWW="${WWW/mirror /}"
395 for c in $WWW; do
396 if [ ! -d $MAIN_WWW_DIR/$c ]; then
397 www $c
398 [ "$c" = "hg" ] && repos
399 fi
400 done
401 echo "127.0.0.1 localhost $(cat /etc/hostname)" > /etc/hosts
402 [ "$IP_ADDR" == "127.0.0.1" ] && echo "127.0.0.1 tazpanel tazpanel.slitaz.org" >> /etc/hosts
403 for hostname in $ADDRESS; do
404 if [ "$hostname" = "www.slitaz.org" ]; then
405 echo "$IP_ADDR $hostname slitaz.org" >> /etc/hosts
406 else
407 echo "$IP_ADDR $hostname" >> /etc/hosts
408 fi
409 done
410 if [ ! -L /usr/share/awstats/icon/other/slitaz-spider-48x48.png ]; then
411 ln -s /repos/website/images/artwork/slitaz-spider-48x48.png /usr/share/awstats/icon/other/slitaz-spider-48x48.png
412 fi
413 if [ "$IP_ADDR" != "127.0.0.1" ]; then
414 if [ ! $(grep -l "dhcp-option=option:router,$ROUTER_IP" /etc/dnsmasq.conf) ]; then
415 echo "$IP_ADDR tazpanel tazpanel.slitaz.org" >> /etc/hosts
416 echo "dhcp-option=option:router,$ROUTER_IP" >> /etc/dnsmasq.conf
417 fi
418 fi
419 if [ -d "$SLITAZ_DIR/$version/packages" ]; then
420 echo "$SLITAZ_DIR/$version/packages" > $LOCALSTATE/mirror
421 fi
422 if [ "$COMMAND" = "tank-only" ]; then
423 [ -f $VHOST_TANK_FILE ] && ln -sf $VHOST_TANK_FILE /etc/lighttpd/vhosts.conf
424 elif [ "$COMMAND" = "mirror-only" ]; then
425 [ -f $VHOST_MIRROR_FILE ] && ln -sf $VHOST_MIRROR_FILE /etc/lighttpd/vhosts.conf
426 else
427 [ -f $VHOST_FILE ] && ln -sf $VHOST_FILE /etc/lighttpd/vhosts.conf
428 fi
429 chown -R www.www $SLITAZ_DIR/www
430 up_src_links
431 [ -x /etc/init.d/lighttpd ] && /etc/init.d/lighttpd start
432 [ -x /etc/init.d/crond ] && /etc/init.d/crond start
433 ;;
434 update-repos)
435 pwd=$(pwd)
436 for i in $(ls $REPOS_DIR); do
437 if [ -d $REPOS_DIR/$i/.hg ]; then
438 cd $REPOS_DIR/$i
439 echo "Updaing $i repo..."
440 hg pull -u
441 fi
442 done
443 cd $pwd
444 ;;
445 up-src-links)
446 up_src_links
447 ;;
448 backup-mirror|-bm)
449 case "$2" in
450 pkgs-dry-push)
451 rsync -avrtlz --delete --dry-run $PKGDIR ${sync_mirror} ;;
452 src-dry-push)
453 rsync -avrtlz --delete --dry-run $SRCDIR ${sync_mirror} ;;
454 repos-dry-push)
455 rsync -avrtlz --delete --dry-run $REPOS_DIR ${sync_mirror} ;;
456 pkgs-push)
457 rsync -avrtlz --delete $PKGDIR ${sync_mirror} ;;
458 src-push)
459 rsync -avrtlz --delete $SRCDIR ${sync_mirror} ;;
460 repos-push)
461 rsync -avrtlz --delete $REPOS_DIR ${sync_mirror} ;;
462 pkgs-dry-pull)
463 rsync -avrtlz --delete --dry-run ${sync_mirror}${PKGDIR} $(dirname ${PKGDIR}) ;;
464 src-dry-pull)
465 rsync -avrtlz --delete --dry-run ${sync_mirror}${SRCDIR} $(dirname ${SRCDIR}) ;;
466 repos-dry-pull)
467 rsync -avrtlz --delete --dry-run ${sync_mirror}${REPOS_DIR} $(dirname ${REPOS_DIR}) ;;
468 pkgs-pull)
469 rsync -avrtlz --delete ${sync_mirror}${PKGDIR} $(dirname ${PKGDIR}) ;;
470 src-pull)
471 rsync -avrtlz --delete ${sync_mirror}${SRCDIR} $(dirname ${SRCDIR}) ;;
472 repos-pull)
473 rsync -avrtlz --delete ${sync_mirror}${REPOS_DIR} $(dirname ${REPOS_DIR}) ;;
474 *)
475 echo "$0 backup-mirror pkgs-dry-{push|pull}"
476 echo "$0 backup-mirorr pkgs-{push|pull}"
477 echo "$0 backup-mirror src-dry-{push|pull}"
478 echo "$0 backup-mirror src-{push|pull}"
479 echo "$0 backup-mirror repos-dry-{push|pull}"
480 echo "$0 backup-mirror repos-{push|pull}" ;;
481 esac ;;
482 off|stop)
483 [ -x /etc/init.d/lighttpd ] && /etc/init.d/lighttpd stop
484 [ -x /etc/init.d/crond ] && /etc/init.d/crond stop
485 echo "127.0.0.1 localhost $(cat /etc/hostname) tazpanel" > /etc/hosts
486 exit 1
487 ;;
488 *)
489 usage
490 ;;
491 esac