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