wok annotate tazpkg-web/stuff/tazpkg-web @ rev 9894
python-kiwi: fix bdep
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Tue May 17 11:29:00 2011 +0200 (2011-05-17) |
parents | 84af4a5de089 |
children |
rev | line source |
---|---|
pankso@3521 | 1 #!/bin/sh |
pankso@3521 | 2 # SliTaz Packages Web interface generator: http://pkgs.slitaz.org/ |
pankso@3521 | 3 # |
pankso@7936 | 4 # (C) 2011 SliTaz project - GNU General Public License v3. |
pankso@3521 | 5 # Christophe Lincoln <pankso@slitaz.org> |
pankso@3521 | 6 # |
pankso@3521 | 7 |
pankso@3521 | 8 . /etc/slitaz/tazpkg-web.conf |
pankso@3521 | 9 |
pankso@3521 | 10 RELEASE="$1" |
pankso@3521 | 11 PAGES_DIR=$WEB_INTERFACE/$RELEASE |
pankso@3521 | 12 DATE=`date +%Y-%m-%d\ \%H:%M:%S` |
pascal@5840 | 13 YEAR=`date +%Y` |
pankso@3521 | 14 |
pankso@3521 | 15 status() |
pankso@3521 | 16 { |
pankso@3521 | 17 local CHECK=$? |
pankso@3521 | 18 echo -en "\033[70G" |
pankso@3521 | 19 if [ $CHECK = 0 ]; then |
pankso@3521 | 20 echo "Done" |
pankso@3521 | 21 else |
pankso@3521 | 22 echo "Failed" |
pankso@3521 | 23 fi |
pankso@3521 | 24 return $CHECK |
pankso@3521 | 25 } |
pankso@3521 | 26 |
pankso@3521 | 27 # Search from option with current version in first so users dont have |
pankso@3521 | 28 # to select the correct one. |
pankso@3521 | 29 search_form_option() |
pankso@3521 | 30 { |
pankso@3521 | 31 if [ "$RELEASE" == "stable" ]; then |
pankso@3521 | 32 cat << _EOT_ |
pankso@7936 | 33 <option>stable</option> |
pankso@7936 | 34 <option>cooking</option> |
pankso@7936 | 35 <option>2.0</option> |
pankso@7936 | 36 <option>1.0</option> |
pankso@3521 | 37 _EOT_ |
pankso@3521 | 38 else |
pankso@3521 | 39 cat << _EOT_ |
pankso@7936 | 40 <option>cooking</option> |
pankso@7936 | 41 <option>stable</option> |
pankso@7936 | 42 <option>2.0</option> |
pankso@7936 | 43 <option>1.0</option> |
pankso@3521 | 44 _EOT_ |
pankso@3521 | 45 fi |
pankso@3521 | 46 } |
pankso@3521 | 47 |
pankso@3521 | 48 # xHTML Header. |
pankso@3521 | 49 xhtml_header() |
pankso@3521 | 50 { |
pankso@3521 | 51 cat $LIB_DIR/html/header.html > $PAGES_DIR/$page.html |
pankso@3521 | 52 sed -i s/"_RELEASE_"/"$RELEASE"/ $PAGES_DIR/$page.html |
pankso@3521 | 53 sed -i s/"_PAGE_"/"$page"/ $PAGES_DIR/$page.html |
pankso@3521 | 54 sed -i s/"_DATE_"/"$DATE"/ $PAGES_DIR/$page.html |
pankso@3521 | 55 } |
pankso@3521 | 56 |
pankso@3521 | 57 # xHTML Footer. |
pankso@3521 | 58 xhtml_footer() |
pankso@3521 | 59 { |
pankso@3521 | 60 cat $LIB_DIR/html/footer.html >> $PAGES_DIR/$page.html |
pankso@3521 | 61 sed -i s/"_DATE_"/"$DATE"/ $PAGES_DIR/$page.html |
pascal@5840 | 62 sed -i s/"_YEAR_"/"$YEAR"/ $PAGES_DIR/$page.html |
pankso@3521 | 63 } |
pankso@3521 | 64 |
pankso@3521 | 65 # Index pages with categories and search form. |
pankso@3521 | 66 gen_index_content() |
pankso@3521 | 67 { |
pankso@3521 | 68 cat >> $PAGES_DIR/$page.html << _EOT_ |
pankso@3521 | 69 |
pankso@7936 | 70 <div class="pkgs-search"> |
pankso@7936 | 71 <form method="post" action="http://pkgs.slitaz.org/search.cgi"> |
pankso@7936 | 72 <p> |
pankso@7936 | 73 <input type="text" name="query" size="32" /> |
pankso@7936 | 74 <input type="submit" name="search" value="Search" /> |
pankso@7936 | 75 </p> |
pankso@7936 | 76 <select name="object"> |
pankso@7936 | 77 <option>Package</option> |
pankso@7936 | 78 <option>Desc</option> |
pankso@7936 | 79 <option>Tags</option> |
pankso@7936 | 80 <option>Receipt</option> |
pankso@7936 | 81 <option>Depends</option> |
pankso@7936 | 82 <option>BuildDepends</option> |
pankso@7936 | 83 <option>File</option> |
pankso@7936 | 84 <option>File_list</option> |
pankso@7936 | 85 <option>FileOverlap</option> |
pankso@7936 | 86 </select> |
pankso@7936 | 87 <select name="version"> |
pankso@3521 | 88 `search_form_option` |
pankso@7936 | 89 </select> |
pankso@7936 | 90 </form> |
pankso@7936 | 91 <p> |
pankso@7936 | 92 $packages packages - Database generated on: $DATE |
pankso@7936 | 93 </p> |
pankso@3521 | 94 </div> |
pankso@3521 | 95 _EOT_ |
pankso@7936 | 96 sed -i s/"_RELEASE_"/"$RELEASE"/ $PAGES_DIR/$page.html |
pankso@3521 | 97 } |
pankso@3521 | 98 |
pankso@3521 | 99 # Packages <h3> and infos in <pre>. Some packages use EXTRAVERSION in |
pankso@3521 | 100 # the receipt so keep the value or set it to the kernel version. |
pankso@3521 | 101 pkgs_pages_content() |
pankso@3521 | 102 { |
pankso@3521 | 103 for pkg in $WOK/* |
pankso@3521 | 104 do |
pankso@3521 | 105 DEPENDS="" |
pankso@3521 | 106 DEPENDS_LINKS="" |
pankso@3521 | 107 EXTRAVERSION="" |
pankso@3521 | 108 . $pkg/receipt |
pankso@3521 | 109 packages=$(($packages+1)) |
pankso@3521 | 110 cat >> $PAGES_DIR/$CATEGORY.html << _EOT_ |
pankso@3521 | 111 |
pankso@3521 | 112 <a name="$PACKAGE"></a> |
pascal@3566 | 113 <h3> |
pankso@4800 | 114 <a href="tazpkg://mirror.slitaz.org/packages/$RELEASE/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg"> |
pankso@4800 | 115 <img src="/pics/tazpkg.png" |
pankso@4800 | 116 title="install" alt="install" |
pankso@4800 | 117 style="vertical-align: middle; width: 24px; height: 24px;" /></a> |
pascal@3566 | 118 $PACKAGE</h3> |
pankso@3521 | 119 <pre class="package"> |
pankso@3521 | 120 Version : $VERSION |
pankso@3521 | 121 Short desc : $SHORT_DESC |
pankso@3521 | 122 Web site : <a href="$WEB_SITE">$WEB_SITE</a> |
pankso@3521 | 123 _EOT_ |
pascal@3566 | 124 [ -z "$EXTRAVERSION" ] && EXTRAVERSION="_$KERNEL" |
pankso@3521 | 125 # Extraversion string or not |
pankso@3521 | 126 if [ -f "$PACKAGES_REPOSITORY/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg" ]; then |
pankso@3521 | 127 cat >> $PAGES_DIR/$CATEGORY.html << _EOT_ |
pankso@3521 | 128 Download : <a href="http://mirror.slitaz.org/packages/$RELEASE/$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg">$PACKAGE-${VERSION}$EXTRAVERSION.tazpkg</a> |
pankso@3521 | 129 _EOT_ |
pankso@3521 | 130 echo '</pre>' >> $PAGES_DIR/$CATEGORY.html |
pankso@3521 | 131 else |
paul@3528 | 132 # Check if package exists, could be virtual? |
pankso@3521 | 133 [ -f "$PACKAGES_REPOSITORY/$PACKAGE-$VERSION.tazpkg" ] && |
pankso@3521 | 134 cat >> $PAGES_DIR/$CATEGORY.html << _EOT_ |
pankso@3521 | 135 Download : <a href="http://mirror.slitaz.org/packages/$RELEASE/$PACKAGE-$VERSION.tazpkg">$PACKAGE-$VERSION.tazpkg</a> |
pankso@3521 | 136 _EOT_ |
pankso@3521 | 137 echo '</pre>' >> $PAGES_DIR/$CATEGORY.html |
pascal@3566 | 138 fi |
pascal@3566 | 139 # Dependencies with link to the package information using |
pascal@3566 | 140 # category.html#anchor |
pascal@3566 | 141 if [ -n "$DEPENDS" ]; then |
pascal@3566 | 142 for dep in $DEPENDS |
pascal@3566 | 143 do |
pascal@3566 | 144 receipt=$WOK/$dep/receipt |
pascal@3566 | 145 if [ -f "$receipt" ]; then |
pascal@3566 | 146 cat=`grep CATEGORY $receipt | sed s/CATEGORY=\"// | sed s/\"//` |
pascal@3566 | 147 DEPENDS_LINKS=${DEPENDS_LINKS}"<a href=\"$cat.html#$dep\">$dep</a> " |
pascal@3566 | 148 fi |
pascal@3566 | 149 done |
pascal@3566 | 150 cat >> $PAGES_DIR/$CATEGORY.html << _EOT_ |
pankso@3521 | 151 <p>Depends : $DEPENDS_LINKS</p> |
pankso@3521 | 152 _EOT_ |
pankso@3521 | 153 fi |
pankso@3521 | 154 done |
pankso@3521 | 155 } |
pankso@3521 | 156 |
pankso@3521 | 157 # Pages footer |
pankso@3521 | 158 pages_footer() |
pankso@3521 | 159 { |
pankso@3521 | 160 for page in $CATEGORIES |
pankso@3521 | 161 do |
pankso@3521 | 162 # Gen categories menu/links |
pankso@3521 | 163 echo '' >> $PAGES_DIR/$page.html |
pankso@7936 | 164 echo '<div class="infobox"><p>' >> $PAGES_DIR/$page.html |
pankso@3521 | 165 echo 'Categories' >> $PAGES_DIR/$page.html |
pankso@3521 | 166 for i in $CATEGORIES |
pankso@3521 | 167 do |
pankso@3521 | 168 cat >> $PAGES_DIR/$page.html << _EOF_ |
pankso@3521 | 169 | <a href="$i.html">$i</a> |
pankso@3521 | 170 _EOF_ |
pankso@3521 | 171 done |
pankso@7936 | 172 echo '</p></div>' >> $PAGES_DIR/$page.html |
pankso@3521 | 173 xhtml_footer |
pankso@3521 | 174 done |
pankso@3521 | 175 } |
pankso@3521 | 176 |
pankso@3521 | 177 # Home page with search form and tag cloud. |
pankso@3521 | 178 home_page() |
pankso@3521 | 179 { |
pankso@3521 | 180 PAGES_DIR=$WEB_INTERFACE |
pankso@3521 | 181 page="index" |
pankso@3521 | 182 h2="Web interface" |
pankso@3521 | 183 RELEASE="" |
pankso@3521 | 184 xhtml_header |
pankso@3521 | 185 cat $LIB_DIR/html/home.html >> $PAGES_DIR/$page.html |
pankso@3521 | 186 xhtml_footer |
pankso@3521 | 187 } |
pankso@3521 | 188 |
pankso@3521 | 189 # Generate all categories pages and release index. |
pankso@3521 | 190 gen_all_pages() |
pankso@3521 | 191 { |
pankso@3521 | 192 # Clean previews files. |
pankso@3521 | 193 rm -rf $PAGES_DIR |
pankso@3521 | 194 mkdir -p $PAGES_DIR |
pankso@3521 | 195 echo -e "\nStarting to build the $RELEASE Web interface... " |
pankso@3521 | 196 echo "================================================================================" |
pankso@3521 | 197 # Packages pages header, menu and content top at first. |
paul@3528 | 198 echo -n "Generating all page headers..." |
pankso@3521 | 199 for page in $CATEGORIES |
pankso@3521 | 200 do |
pankso@3521 | 201 h2=$page |
pankso@3521 | 202 xhtml_header |
pankso@3521 | 203 cat $LIB_DIR/html/menu.html >> $PAGES_DIR/$page.html |
pankso@7936 | 204 sed -i s/"_RELEASE_"/"$RELEASE"/ $PAGES_DIR/$page.html |
pankso@7936 | 205 echo "<h2>Category: $h2</h2>" >> $PAGES_DIR/$page.html |
pankso@3521 | 206 done |
pankso@3521 | 207 status |
pankso@3521 | 208 # Scan the wok and classify packages by category. |
paul@3528 | 209 echo -n "Scanning the wok and generating page contents..." |
pankso@3521 | 210 pkgs_pages_content |
pankso@3521 | 211 status |
pankso@3521 | 212 # Gen all packages pages footer. |
paul@3528 | 213 echo -n "Generating all page footers..." |
pankso@3521 | 214 pages_footer |
pankso@3521 | 215 status |
pankso@3521 | 216 # Stable or Cooking index with categories and home page. |
pankso@3521 | 217 echo -n "Generating the main index..." |
pankso@3521 | 218 page="index" |
pankso@3521 | 219 h2="Categories" |
pankso@3521 | 220 xhtml_header |
pankso@3521 | 221 cat $LIB_DIR/html/menu.html >> $PAGES_DIR/$page.html |
pankso@3521 | 222 gen_index_content |
pankso@3521 | 223 xhtml_footer |
pankso@3521 | 224 home_page |
pankso@3521 | 225 status |
pankso@3521 | 226 echo "================================================================================" |
pankso@3521 | 227 echo -e "Pages generated: $WEB_INTERFACE\n" |
pankso@3521 | 228 } |
pankso@3521 | 229 |
pankso@3521 | 230 # Prefer the Hg wok in the chroot. On host running Tazbb the wok's |
paul@3528 | 231 # are updated and copied automatically and so more up-to-date. |
pankso@3521 | 232 |
pankso@3521 | 233 case "$1" in |
pankso@3521 | 234 stats) |
pankso@3521 | 235 size=`du -sh $WEB_INTERFACE | awk '{ print $1 }'` |
pankso@3521 | 236 pages=`find $WEB_INTERFACE -name *.html | wc -l` |
pankso@3521 | 237 stable=`find $WEB_INTERFACE/stable -name *.html | wc -l` |
pankso@3521 | 238 cooking=`find $WEB_INTERFACE/cooking -name *.html | wc -l` |
pankso@3521 | 239 cat << _EOT_ |
pankso@3521 | 240 |
pankso@3521 | 241 Tazpkg-web statistics |
pankso@3521 | 242 ================================================================================ |
pankso@3521 | 243 Web interface : $WEB_INTERFACE ($size) |
pankso@3521 | 244 xHTML pages : $pages (Stable $stable - Cooking $cooking) |
pankso@3521 | 245 Library path : $LIB_DIR |
pankso@3521 | 246 Stable path : $STABLE |
pankso@3521 | 247 Cooking path : $COOKING |
pankso@3521 | 248 ================================================================================ |
pankso@3521 | 249 |
pankso@3521 | 250 _EOT_ |
pankso@3521 | 251 ;; |
pankso@3521 | 252 check) |
pankso@3521 | 253 RELEASE=$2 |
pankso@3521 | 254 [ -z "$RELEASE" ] && RELEASE=cooking |
pankso@3521 | 255 echo -e "\nChecking: $WEB_INTERFACE/$RELEASE\n" |
pankso@3521 | 256 for page in `cd $WEB_INTERFACE/$RELEASE && ls *.html` |
pankso@3521 | 257 do |
pankso@3521 | 258 if ! echo "$CATEGORIES index" | grep -qw ${page%.html}; then |
pankso@3521 | 259 echo "Wrong category: ${page%.html}" |
pankso@3521 | 260 fi |
pankso@3521 | 261 done && echo "" ;; |
pankso@3521 | 262 stable) |
pankso@3521 | 263 PACKAGES_REPOSITORY=$STABLE/packages |
pankso@3521 | 264 if [ -d $STABLE/chroot/home/slitaz/hg/wok ]; then |
pankso@3521 | 265 WOK=$STABLE/chroot/home/slitaz/hg/wok |
pankso@3521 | 266 else |
pankso@3521 | 267 WOK=$STABLE/wok |
pankso@3521 | 268 fi |
pankso@3521 | 269 KERNEL=`cat $WOK/linux/receipt | grep ^VERSION= | cut -d '"' -f 2` |
pankso@3521 | 270 gen_all_pages ;; |
pankso@3521 | 271 cooking) |
pankso@3521 | 272 PACKAGES_REPOSITORY=$COOKING/packages |
pankso@3521 | 273 if [ -d $COOKING/chroot/home/slitaz/hg/wok ]; then |
pankso@3521 | 274 WOK=$COOKING/chroot/home/slitaz/hg/wok |
pankso@3521 | 275 else |
pankso@3521 | 276 WOK=$COOKING/wok |
pankso@3521 | 277 fi |
pankso@3521 | 278 KERNEL=`cat $WOK/linux/receipt | grep ^VERSION= | cut -d '"' -f 2` |
pankso@3521 | 279 gen_all_pages ;; |
pankso@3521 | 280 *|usage) |
pankso@3521 | 281 cat << _EOT_ |
pankso@3521 | 282 |
pankso@3521 | 283 Tazpkg-web - SliTaz Packages Web interface generator. |
pankso@3521 | 284 Usage: `basename $0` [slitaz-release|stats|check] |
pankso@3521 | 285 |
pankso@3521 | 286 _EOT_ |
pankso@3521 | 287 ;; |
pankso@3521 | 288 esac |
pankso@3521 | 289 |
pankso@3521 | 290 exit 0 |