tinycm annotate plugins/export/export.cgi @ rev 6
Add plugins (skel and export)
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Wed Apr 11 15:59:53 2012 +0200 (2012-04-11) |
parents | |
children | 4067b670d4ee |
rev | line source |
---|---|
pankso@6 | 1 #!/bin/sh |
pankso@6 | 2 # |
pankso@6 | 3 # TinyCM Plugin - Export to static content |
pankso@6 | 4 # |
pankso@6 | 5 . /usr/lib/slitaz/httphelper |
pankso@6 | 6 |
pankso@6 | 7 if [ "$(GET export)" ]; then |
pankso@6 | 8 d="Export" |
pankso@6 | 9 date=$(date "+%Y%m%d") |
pankso@6 | 10 tmpdir="$tmp/export/$$/wiki-$date" |
pankso@6 | 11 header |
pankso@6 | 12 html_header |
pankso@6 | 13 user_box |
pankso@6 | 14 cat << EOT |
pankso@6 | 15 <h2>Export</h2> |
pankso@6 | 16 <p> |
pankso@6 | 17 $(gettext "Export to HTML and ceate a tarball of your text content or |
pankso@6 | 18 uploaded files.") |
pankso@6 | 19 </p> |
pankso@6 | 20 <form method="get" action="$WEB_URL"> |
pankso@6 | 21 <select name="export"> |
pankso@6 | 22 EOT |
pankso@6 | 23 for c in $(ls -1 content/) |
pankso@6 | 24 do |
pankso@6 | 25 echo "<option value="$c">$c</option>" |
pankso@6 | 26 done |
pankso@6 | 27 cat << EOT |
pankso@6 | 28 </select> |
pankso@6 | 29 <input type="submit" value="$(gettext "Export")" /> |
pankso@6 | 30 </form> |
pankso@6 | 31 EOT |
pankso@6 | 32 # Functions |
pankso@6 | 33 css_path() { |
pankso@6 | 34 # Sed CSS style path in all documents |
pankso@6 | 35 sed -i s'/style.css/..\/style.css/' */*.html |
pankso@6 | 36 sed -i s'/style.css/..\/..\/style.css/' */*/*.html |
pankso@6 | 37 sed -i s'/style.css/..\/..\/..\/style.css/' */*/*/*.html |
pankso@6 | 38 } |
pankso@6 | 39 gen_tarball() { |
pankso@6 | 40 gettext "Creating tarball"; echo -n ": " |
pankso@6 | 41 cd $tmpdir && mkdir $TINYCM/$cache/export |
pankso@6 | 42 # Clean cache |
pankso@6 | 43 find $TINYCM/$cache/export -mtime +1 | xargs rm -rf |
pankso@6 | 44 tar czf $TINYCM/$cache/export/$export-$date.tar.gz $export |
pankso@6 | 45 cd $TINYCM/$cache/export && du -sh $export-$date.tar.gz |
pankso@6 | 46 } |
pankso@6 | 47 dl_link() { |
pankso@6 | 48 gettext "Download"; echo \ |
pankso@6 | 49 ": <a href='cache/export/$export-$date.tar.gz'>$export-$date.tar.gz</a>" |
pankso@6 | 50 } |
pankso@6 | 51 # Export requested content |
pankso@6 | 52 case " $(GET export) " in |
pankso@6 | 53 *\ uploads\ *) |
pankso@6 | 54 export="uploads" |
pankso@6 | 55 tmpdir="content" |
pankso@6 | 56 echo '<pre>' |
pankso@6 | 57 gettext "Exporting:"; echo " $export" |
pankso@6 | 58 gen_tarball |
pankso@6 | 59 echo '</pre>' |
pankso@6 | 60 dl_link ;; |
pankso@6 | 61 *) |
pankso@6 | 62 [ "$(GET export)" == "export" ] && exit 0 |
pankso@6 | 63 export="$(GET export)" |
pankso@6 | 64 format="html" |
pankso@6 | 65 echo '<pre>' |
pankso@6 | 66 gettext "Exporting:"; echo " $export" |
pankso@6 | 67 gettext "Creating tmp directory:"; echo " PID $$ DATE $date" |
pankso@6 | 68 mkdir -p $tmpdir/$export |
pankso@6 | 69 gettext "Copying CSS style and images..."; echo |
pankso@6 | 70 cp -a style.css images $tmpdir/$export |
pankso@6 | 71 cd $content/$export |
pankso@6 | 72 for d in $(find . -type f | sed s'!./!!') |
pankso@6 | 73 do |
pankso@6 | 74 d=${d%.txt} |
pankso@6 | 75 [ "$d" == "help" ] && continue |
pankso@6 | 76 gettext "Exporting: "; echo "$d.txt" |
pankso@6 | 77 mkdir -p $tmpdir/$export/$(dirname $d) |
pankso@6 | 78 f=$tmpdir/$export/$d.html |
pankso@6 | 79 html_header > $f |
pankso@6 | 80 sed -i '/functions.js/'d $f |
pankso@6 | 81 sed -i '/favicon.ico/'d $f |
pankso@6 | 82 cat $d.txt | wiki_parser | sed \ |
pankso@6 | 83 -e '/functions.js/'d \ |
pankso@6 | 84 -e s'/?d=//'g \ |
pankso@6 | 85 -e s"#href='\([^']*\)*\>#\0.html#"g >> $f |
pankso@6 | 86 html_footer >> $f |
pankso@6 | 87 done |
pankso@6 | 88 cd $tmpdir/$export |
pankso@6 | 89 [ "$format" == "html" ] && css_path |
pankso@6 | 90 gen_tarball |
pankso@6 | 91 gettext "Removing temporary files..."; echo |
pankso@6 | 92 rm -rf $tmp/export/$$ |
pankso@6 | 93 echo '</pre>' |
pankso@6 | 94 dl_link ;; |
pankso@6 | 95 esac |
pankso@6 | 96 |
pankso@6 | 97 html_footer |
pankso@6 | 98 exit 0 |
pankso@6 | 99 fi |