tazweb annotate lib/helper.sh @ rev 188
Docs: reformat html and use html5 tags, up css; Makefile: use gettext to translate .desktop file, up po files.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Tue Mar 14 20:15:40 2017 +0200 (2017-03-14) |
parents | 3d4f8134bd2f |
children | 33e0f5920655 |
rev | line source |
---|---|
pankso@179 | 1 #!/bin/sh |
pankso@179 | 2 # |
pankso@179 | 3 # TazWeb Helper - Handle bookmarks and cookies |
pankso@179 | 4 # |
pankso@179 | 5 # Coding: No libtaz.sh and so it is usable on any Linux distro |
pankso@179 | 6 # |
pankso@179 | 7 # Copyright (C) 2017 SliTaz GNU/Linux - BSD License |
pankso@179 | 8 # See AUTHORS and LICENSE for detailed information |
pankso@179 | 9 # |
pankso@179 | 10 |
pankso@179 | 11 config="$HOME/.config/tazweb" |
pankso@179 | 12 bm_txt="$config/bookmarks.txt" |
pankso@179 | 13 bm_html="$config/bookmarks.html" |
pankso@179 | 14 cookies_txt="$config/cookies.txt" |
pankso@179 | 15 cookies_html="$config/cookies.html" |
pankso@179 | 16 |
al@188 | 17 export TEXTDOMAIN='tazweb' |
pankso@179 | 18 |
pankso@179 | 19 # Parse cmdline options and store values in a variable |
al@188 | 20 for opt in $@; do |
pankso@179 | 21 opt_name="${opt%%=*}" |
pankso@179 | 22 opt_name="${opt_name#--}" |
pankso@179 | 23 case "$opt" in |
pankso@179 | 24 --*=*) export $opt_name="${opt#*=}" ;; |
pankso@179 | 25 --*) export $opt_name="on" ;; |
pankso@179 | 26 esac |
pankso@179 | 27 done |
pankso@179 | 28 |
pankso@179 | 29 # HTML 5 header with built-in minimal CSS. Usage: html_header "title" |
pankso@179 | 30 html_header() { |
pankso@179 | 31 local title="$1" |
al@188 | 32 cat <<EOT |
pankso@179 | 33 <!DOCTYPE html> |
pankso@179 | 34 <html lang="en"> |
pankso@179 | 35 <head> |
al@188 | 36 <meta charset="UTF-8"> |
pankso@179 | 37 <title>$title</title> |
al@188 | 38 <style> |
al@188 | 39 body { margin: 2% 10%; font-size: 92%; } |
al@188 | 40 h1 { color: #CCC; border-bottom: 2px solid #CCC; } |
al@188 | 41 ul { padding: 0; } |
pankso@179 | 42 ul a { text-decoration: none; } ul a:hover { text-decoration: underline; } |
pankso@179 | 43 li { list-style-type: none; line-height: 1.4em; padding: 0; } |
al@188 | 44 footer { font-size: 80%; border-top: 2px solid #CCC; padding: 5px 0; color: #888; } |
pankso@179 | 45 </style> |
pankso@179 | 46 </head> |
pankso@179 | 47 <body> |
al@188 | 48 <section id="content"> |
al@188 | 49 <h1>$title</h1> |
pankso@179 | 50 EOT |
pankso@179 | 51 } |
pankso@179 | 52 |
pankso@179 | 53 # HTML 5 footer: html_footer content |
pankso@179 | 54 html_footer() { |
al@188 | 55 cat <<EOT |
al@188 | 56 </section> |
al@188 | 57 <footer> |
al@188 | 58 $@ |
al@188 | 59 </footer> |
pankso@179 | 60 </body> |
pankso@179 | 61 </html> |
pankso@179 | 62 EOT |
pankso@179 | 63 } |
pankso@179 | 64 |
pankso@179 | 65 # Generate bookmarks.html |
pankso@179 | 66 html_bookmarks() { |
al@188 | 67 { |
al@188 | 68 html_header "$(gettext 'Bookmarks')" |
al@188 | 69 echo '<ul>' |
al@188 | 70 |
al@188 | 71 IFS="|" |
al@188 | 72 while read title url null; do |
al@188 | 73 echo "<li><a href=\"$url\">$title</a></li>" |
al@188 | 74 done < $bm_txt |
al@188 | 75 unset IFS |
al@188 | 76 |
al@188 | 77 echo '</ul>' |
al@188 | 78 html_footer "$(wc -l < $bm_txt) $(gettext "Bookmarks") - $(date)" |
al@188 | 79 } > $bm_html |
al@188 | 80 |
pankso@179 | 81 # Security fix from old cgi-bin bookmarks.cgi |
al@188 | 82 chown $USER:$USER $bm_txt; chmod 0600 $bm_txt |
pankso@179 | 83 } |
pankso@179 | 84 |
pankso@179 | 85 edit_bookmarks() { |
pankso@179 | 86 yad --text-info \ |
al@188 | 87 --center --width=640 --height=480 --filename=$bm_txt |
pankso@179 | 88 } |
pankso@179 | 89 |
pankso@179 | 90 # Generate cookies.html (for direct view of cookies in TazWeb) |
pankso@179 | 91 html_cookies() { |
al@188 | 92 { |
al@188 | 93 html_header "$(gettext 'Cookies')" |
al@188 | 94 echo '<pre>' |
al@188 | 95 |
al@188 | 96 IFS="|" |
al@188 | 97 while read line; do |
al@188 | 98 echo "${line#\#HttpOnly_}" |
al@188 | 99 done < $cookies_txt |
al@188 | 100 unset IFS |
al@188 | 101 |
al@188 | 102 echo '</pre>' |
al@188 | 103 html_footer "$(cat $cookies_txt | wc -l) $(gettext "Cookies") - $(date)" |
al@188 | 104 } > $cookies_html |
pankso@179 | 105 } |
pankso@179 | 106 |
pankso@179 | 107 clean_cookies() { |
al@188 | 108 > $cookies_txt |
pankso@179 | 109 } |
pankso@179 | 110 |
al@188 | 111 |
pankso@179 | 112 # |
pankso@179 | 113 # Execute any shell_function |
pankso@179 | 114 # |
pankso@179 | 115 case "$1" in |
pankso@179 | 116 |
al@188 | 117 *_*) |
al@188 | 118 cmd=$1; shift; $cmd $@ ;; |
pankso@179 | 119 |
al@188 | 120 *) grep "[a-z]_*()" $0 | awk '{print $1}' ;; |
al@188 | 121 |
al@188 | 122 esac |
al@188 | 123 exit 0 |