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