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

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