slitaz-forge annotate mirror/floppies/mkindex.sh @ rev 716

mirror/floppies: multi-format support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Jul 23 16:41:12 2021 +0000 (2021-07-23)
parents 2f42ab2912be
children
rev   line source
pascal@265 1 #!/bin/sh
pascal@265 2
pascal@625 3 list_version() {
pascal@696 4 ls rolling next ?.0 -dr | \
pascal@625 5 while read dir; do
pascal@265 6 echo $dir
pascal@265 7 [ -d loram-$dir ] && echo loram-$dir
pascal@625 8 [ -d web-$dir ] && echo web-$dir
pascal@625 9 [ -d mini-$dir ] && echo mini-$dir
pascal@265 10 done
pascal@265 11 }
pascal@265 12
pascal@625 13 build_page() {
pascal@265 14 DIR=$1
pascal@716 15 SETS="$(echo $(./sets.sh $1))"
pascal@625 16 case "$DIR" in
pascal@625 17 *.*) stable=stable;;
pascal@625 18 *) stable=development;;
pascal@625 19 esac
pascal@265 20 VERSION=${DIR#*-}
pascal@265 21 case "$DIR" in
pascal@625 22 web*) TYPE="&nbsp;web" ;;
pascal@625 23 mini*) TYPE="&nbsp;mini" ;;
pascal@625 24 loram*) TYPE="&nbsp;loram" ;;
pascal@696 25 next*) TYPE="&nbsp;next" ;;
pascal@625 26 *) TYPE=""
pascal@265 27 esac
pascal@375 28 TITLE="Floppy image set"
pascal@375 29 [ -s $DIR/title ] && TITLE="$(cat $DIR/title)"
pascal@265 30 cat <<EOT
pascal@625 31 <!DOCTYPE html>
pascal@625 32 <html lang="en">
pascal@265 33 <head>
pascal@265 34 <title>SliTaz Boot Floppies</title>
pascal@625 35 <meta charset="UTF-8">
pascal@625 36 <meta name="description" content="slitaz$TYPE boot floppies $VERSION">
pascal@625 37 <meta name="robots" content="index, nofollow">
pascal@625 38 <meta name="author" content="SliTaz Contributors">
pascal@625 39 <meta name="viewport" content="width=device-width, initial-scale=1.0">
pascal@625 40 <link rel="shortcut icon" href="static/favicon.ico">
pascal@625 41 <link rel="stylesheet" href="static/slitaz.min.css">
pascal@625 42 <link rel="stylesheet" href="menu.css">
pascal@265 43 <style type="text/css">
pascal@625 44 .block_info { width: inherit; }
pascal@625 45 nav table { margin: 6px 0 0 0; }
pascal@625 46 nav table a { color: #215090; }
pascal@625 47 nav header::before { content: url(pics/floppy.png); vertical-align: middle; padding: 0 6px 0 0; }
pascal@625 48 pre, tt, code { font-size: 0.9rem; }
pascal@265 49 </style>
pascal@265 50 </head>
pascal@625 51 <body>
pascal@625 52
pascal@625 53 <script>de=document.documentElement;de.className+=(("ontouchstart" in de)?' touch':' no-touch');</script>
pascal@625 54
pascal@625 55 <header>
pascal@625 56 <h1 id="top"><a href="http://www.slitaz.org/">Boot floppies $DIR</a></h1>
pascal@625 57
pascal@625 58 <div class="network">
pascal@625 59 <a href="http://www.slitaz.org/" class="home"></a>
pascal@625 60 <ul id="menu">
pascal@625 61 <li>
pascal@625 62 <a href="floppy-grub4dos"
pascal@625 63 title="Boot tools"
pascal@625 64 >Generic boot floppy</a>
pascal@625 65 </li>
pascal@625 66 <li>
pascal@625 67 <a href="http://tiny.slitaz.org/"
pascal@625 68 title="SliTaz in one floppy and 4Mb RAM"
pascal@625 69 >Tiny SliTaz</a>
pascal@625 70 <ul>
pascal@625 71 $(
pascal@625 72 list_version | \
pascal@625 73 while read dir; do
pascal@375 74 case "$dir" in
pascal@696 75 *-*|next)
pascal@625 76 echo -n " <li>"
pascal@375 77 text="${dir/-/ }";;
pascal@625 78 *)
pascal@625 79 echo -n " $ul<li>"
pascal@375 80 text="SliTaz ${dir/-/ }";;
pascal@375 81 esac
pascal@625 82
pascal@625 83 echo " <a href=\"index-$dir.html\""
pascal@625 84 echo " title=\"$(cat $dir/title)\""
pascal@625 85 echo " >$text</a>"
pascal@625 86
pascal@375 87 case "$dir" in
pascal@696 88 *-*|next)
pascal@625 89 echo " </li>";;
pascal@625 90 *)
pascal@625 91 echo " <ul>"
pascal@625 92 ul=" </ul>
pascal@625 93 </li>";;
pascal@375 94 esac
pascal@265 95 done )
pascal@625 96 </ul>
pascal@625 97 </li>
pascal@625 98 </ul>
pascal@625 99 </li>
pascal@625 100 <li>
pascal@625 101 <a href="builder/index.php"
pascal@625 102 title="Build floppies with your own kernel and initramfs"
pascal@625 103 >Floppy set builder</a>
pascal@625 104 <ul>
pascal@625 105 <li>
pascal@625 106 <a href="builder/bootloader"
pascal@625 107 title="Build your floppy sets without Internet"
pascal@625 108 >Standalone shell</a>
pascal@625 109 </li>
pascal@625 110 </ul>
pascal@625 111 </li>
pascal@265 112 </ul>
pascal@265 113 </div>
pascal@625 114 </header>
pascal@265 115
pascal@265 116 <!-- Block -->
pascal@625 117 <div class="block"><div>
pascal@625 118
pascal@265 119 <!-- Information/image -->
pascal@625 120 <div class="block_info">
pascal@625 121 <header>Available boot floppies</header>
pascal@265 122 <ul>
pascal@265 123 $(
pascal@265 124 tail=""
pascal@625 125 list_version | \
pascal@625 126 while read dir; do
pascal@265 127 case "$dir" in
pascal@696 128 web*) echo -en "\n &middot; <a href=\"index-$dir.html\">web</a>" ;;
pascal@696 129 mini*) echo -en "\n &middot; <a href=\"index-$dir.html\">mini</a>" ;;
pascal@696 130 loram*) echo -en "\n &middot; <a href=\"index-$dir.html\">loram</a>" ;;
pascal@696 131 next*) echo -en "\n &middot; <a href=\"index-$dir.html\">next</a>" ;;
pascal@625 132 *) echo -en "$tail <li><a href=\"index-$dir.html\">SliTaz $dir</a>" ;;
pascal@265 133 esac
pascal@265 134 tail="</li>\n"
pascal@265 135 done
pascal@265 136 )</li>
pascal@265 137 </ul>
pascal@265 138 </div>
pascal@625 139
pascal@625 140 <!-- Navigation -->
pascal@625 141 <nav>
pascal@716 142 <header><span id="format">1.44MB</span> SliTaz$TYPE $VERSION floppy images</header>
pascal@716 143
pascal@716 144 <div class="large"><table id="floppies">
pascal@625 145 $(
pascal@625 146 n=0
pascal@716 147 for f in $DIR/fd???.img ; do
pascal@625 148 [ $n -eq 0 ] && echo " <tr>"
pascal@625 149 echo " <td><a href=\"$f\">$(basename $f .img)</a></td>"
pascal@625 150 n=$(( ($n+1)%6 ))
pascal@625 151 [ $n -eq 0 ] && echo " </tr>"
pascal@625 152 done
pascal@625 153 [ $n -eq 0 ] && echo " <tr>"
pascal@625 154 while [ $n -ne 5 ]; do
pascal@625 155 echo " <td> </td>"
pascal@625 156 n=$(($n+1))
pascal@625 157 done
pascal@625 158 )
pascal@625 159 <td><a href="$DIR/md5sum">md5</a></td>
pascal@625 160 </tr>
pascal@625 161 </table></div>
pascal@625 162 </nav>
pascal@625 163 </div></div>
pascal@625 164
pascal@716 165 EOT
pascal@716 166 [ -n "$SETS" ] && cat <<EOT
pascal@716 167 <script type="text/javascript">
pascal@716 168 var dir = "$VERSION";
pascal@716 169 var sets = [${SETS// /,}];
pascal@716 170 //-->
pascal@716 171 </script>
pascal@716 172 <script type="text/javascript" src="format.js"></script>
pascal@716 173 EOT
pascal@716 174 cat <<EOT
pascal@265 175
pascal@265 176 <!-- Content -->
pascal@625 177 <main>
pascal@265 178
pascal@375 179 <h2>$TITLE</h2>
pascal@265 180
pascal@625 181 <p>This floppy set will boot a SliTaz $stable$TYPE version. You can write floppies
pascal@625 182 with SliTaz <code>bootfloppybox</code>, <a
pascal@625 183 href="http://en.wikipedia.org/wiki/RaWrite" target="_blank">Windows rawrite</a>
pascal@625 184 or simply <code>dd</code>:</p>
pascal@265 185
pascal@625 186 <pre># dd if=fd001.img of=/dev/fd0</pre>
pascal@625 187
pascal@696 188 <p>If you have a CD-ROM, a USB port and a USB key or a network card, but you
pascal@625 189 can't boot these devices directly, then try <a
pascal@625 190 href="http://mirror.slitaz.org/boot/floppy-grub4dos" target="_blank"
pascal@625 191 >floppy-grub4dos</a> first. This 1.44Mb floppy provides tiny programs to boot
pascal@625 192 these devices without BIOS support and some other tools.</p>
pascal@625 193
pascal@265 194 $(cat $DIR/description.html)
pascal@265 195
pascal@625 196 <p>Each floppy set detects disk swaps and can be used without a keyboard.</p>
pascal@625 197
pascal@625 198 <p>Good luck.</p>
pascal@625 199
pascal@625 200
pascal@625 201 <h2 id="fdiso">ISO image floppy set</h2>
pascal@265 202
pascal@578 203 <form method="get" action="http://mirror1.slitaz.org/floppies/download.php">
pascal@625 204
pascal@625 205 <p>The floppy image set above includes an embedded installer and can install
pascal@625 206 SliTaz on your hard disk.</p>
pascal@625 207
paul@626 208 <p>Anyhow you may want these ISO images to <a
pascal@625 209 href="http://doc.slitaz.org/en:guides:uncommoninst#floppy-install">install
pascal@625 210 SliTaz</a>
pascal@625 211
pascal@625 212 <select name="iso">
pascal@265 213 $(
pascal@265 214 for file in $(ls ../iso/*/flavors/slitaz-*.iso ../iso/*/slitaz-*.iso | sort); do
pascal@265 215 set -- $(echo $(basename $file .iso) | sed 's/-/ /g')
pascal@625 216 echo " <option value=\"${file#../}\">${3:-core} $4 $2</option>"
pascal@265 217 done
pascal@265 218 )
pascal@625 219 </select>
pascal@625 220
pascal@625 221 <input name="build" value="Build floppy set" type="submit"/>
pascal@625 222 </p>
pascal@265 223 </form>
pascal@625 224
pascal@625 225 <p>You can restore the ISO image on your hard disk using:</p>
pascal@625 226
pascal@265 227 <pre>
pascal@265 228 # dd if=/dev/fd0 of=fdiso01.img
pascal@265 229 # dd if=/dev/fd0 of=fdiso02.img
pascal@265 230 # ...
pascal@265 231 # cat fdiso*.img | cpio -i
pascal@265 232 </pre>
pascal@265 233
pascal@625 234
pascal@265 235 <h2>Images generation</h2>
pascal@625 236
pascal@594 237 <ul>
pascal@625 238 <li>All these floppy images are built from a <i>core</i> or a <i>Nin1</i>
pascal@625 239 ISO.</li>
pascal@625 240 <li>The <i>loram</i> is preprocessed by <code>tazlitobox</code> (Low RAM
pascal@625 241 tab) or <code>tazlito build-loram</code>.</li>
pascal@625 242 <li>The versions 1.0 and 2.0 are built with <code>bootfloppybox</code>
pascal@625 243 available since 3.0.</li>
pascal@625 244 <li>The newer versions are built with <code>taziso floppyset</code>
pascal@625 245 available since 5.0.</li>
pascal@625 246 <li>You can extract the <u>kernel</u>, <u>cmdline</u> and <u>rootfs*</u>
pascal@625 247 files with <a href="floppies">this tool</a>.</li>
pascal@625 248 <li>You can change the floppy format (to 2.88M, 1.2M ...)
pascal@625 249 with <a href="resizefdset.sh">this tool</a>.</li>
pascal@594 250 </ul>
pascal@265 251
pascal@625 252 <!-- End of content -->
pascal@625 253 </main>
pascal@265 254
pascal@265 255
pascal@625 256 <script>
pascal@568 257 function QRCodePNG(str, obj) {
pascal@568 258 try {
pascal@570 259 obj.height = obj.width += 300;
pascal@568 260 return QRCode.generatePNG(str, {ecclevel: 'H'});
pascal@568 261 }
pascal@568 262 catch (any) {
pascal@568 263 var element = document.createElement("script");
pascal@625 264 element.src = "/static/qrcode.min.js";
pascal@625 265 element.type = "text/javascript";
pascal@568 266 element.onload = function() {
pascal@568 267 obj.src = QRCode.generatePNG(str, {ecclevel: 'H'});
pascal@568 268 };
pascal@568 269 document.body.appendChild(element);
pascal@568 270 }
pascal@625 271 }
pascal@625 272 </script>
pascal@625 273
pascal@625 274 <footer>
pascal@625 275 <div>
pascal@696 276 Copyright &copy; <span class="year"></span>
pascal@625 277 <a href="http://www.slitaz.org/">SliTaz</a>
pascal@625 278 </div>
pascal@625 279 <div>
pascal@625 280 Network:
pascal@696 281 <a href="http://scn.slitaz.org/">Community</a> &middot;
pascal@696 282 <a href="http://doc.slitaz.org/">Doc</a> &middot;
pascal@696 283 <a href="http://forum.slitaz.org/">Forum</a> &middot;
pascal@696 284 <a href="http://pkgs.slitaz.org/">Packages</a> &middot;
pascal@696 285 <a href="http://bugs.slitaz.org">Bugs</a> &middot;
pascal@625 286 <a href="http://hg.slitaz.org/?sort=lastchange">Hg</a>
pascal@625 287 </div>
pascal@625 288 <div>
pascal@625 289 SliTaz @
pascal@696 290 <a href="http://twitter.com/slitaz">Twitter</a> &middot;
pascal@696 291 <a href="http://www.facebook.com/slitaz">Facebook</a> &middot;
pascal@696 292 <a href="http://distrowatch.com/slitaz">Distrowatch</a> &middot;
pascal@696 293 <a href="http://en.wikipedia.org/wiki/SliTaz">Wikipedia</a> &middot;
pascal@625 294 <a href="http://flattr.com/profile/slitaz">Flattr</a>
pascal@625 295 </div>
pascal@625 296 <img src="/static/qr.png" alt="#" onmouseover="this.title = location.href"
pascal@625 297 onclick="this.src = QRCodePNG(location.href, this)"/>
pascal@625 298 </footer>
pascal@265 299
pascal@265 300 </body>
pascal@265 301 </html>
pascal@265 302 EOT
pascal@265 303 }
pascal@265 304
pascal@265 305 if [ -n "$1" ]; then
pascal@265 306 build_page $1
pascal@265 307 else
pascal@265 308 list_version | while read dir ; do
pascal@265 309 [ -s $dir/description.html ] || continue
pascal@265 310 [ -s $dir/md5sum ] || continue
pascal@265 311 build_page $dir > index-$dir.html
pascal@265 312 done
pascal@265 313 fi