tazweb annotate lib/helper.sh @ rev 179
Use helper as as SHell library
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon Mar 13 01:51:59 2017 +0100 (2017-03-13) |
parents | |
children | bb7b18c98c63 |
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 |
pankso@179 | 17 export TEXTDOMAIN='tazweb-lib' |
pankso@179 | 18 |
pankso@179 | 19 # Parse cmdline options and store values in a variable |
pankso@179 | 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" |
pankso@179 | 32 cat << EOT |
pankso@179 | 33 <!DOCTYPE html> |
pankso@179 | 34 <html lang="en"> |
pankso@179 | 35 <head> |
pankso@179 | 36 <meta charset="utf-8" /> |
pankso@179 | 37 <title>$title</title> |
pankso@179 | 38 <style type="text/css"> |
pankso@179 | 39 body { margin: 2% 10%; font-size: 92%; } ul { padding: 0; } |
pankso@179 | 40 h1 { color: #ccc; border-bottom: 2px solid #ccc; } |
pankso@179 | 41 ul a { text-decoration: none; } ul a:hover { text-decoration: underline; } |
pankso@179 | 42 li { list-style-type: none; line-height: 1.4em; padding: 0; } |
pankso@179 | 43 footer { font-size: 80%; border-top: 2px solid #ccc; padding: 5px 0; color: #888; } |
pankso@179 | 44 </style> |
pankso@179 | 45 </head> |
pankso@179 | 46 <body> |
pankso@179 | 47 <section id="content"> |
pankso@179 | 48 <h1>$title</h1> |
pankso@179 | 49 EOT |
pankso@179 | 50 } |
pankso@179 | 51 |
pankso@179 | 52 # HTML 5 footer: html_footer content |
pankso@179 | 53 html_footer() { |
pankso@179 | 54 cat << EOT |
pankso@179 | 55 </section> |
pankso@179 | 56 <footer> |
pankso@179 | 57 ${@} |
pankso@179 | 58 </footer> |
pankso@179 | 59 </body> |
pankso@179 | 60 </html> |
pankso@179 | 61 EOT |
pankso@179 | 62 } |
pankso@179 | 63 |
pankso@179 | 64 # Generate bookmarks.html |
pankso@179 | 65 html_bookmarks() { |
pankso@179 | 66 html_header "$(gettext 'Bookmarks')" > ${bm_html} |
pankso@179 | 67 echo '<ul>' >> ${bm_html} |
pankso@179 | 68 IFS="|" |
pankso@179 | 69 cat ${bm_txt} | while read title url null |
pankso@179 | 70 do |
pankso@179 | 71 cat >> ${bm_html} << EOT |
pankso@179 | 72 <li><a href="${url}">${title}</a></li> |
pankso@179 | 73 EOT |
pankso@179 | 74 done; unset IFS |
pankso@179 | 75 echo '</ul>' >> ${bm_html} |
pankso@179 | 76 html_footer "$(cat $bm_txt | wc -l) $(gettext "Bookmarks") - $(date)" \ |
pankso@179 | 77 >> ${bm_html} |
pankso@179 | 78 # Security fix from old cgi-bin bookmarks.cgi |
pankso@179 | 79 chown ${USER}.${USER} ${bm_txt}; chmod 0600 ${bm_txt} |
pankso@179 | 80 } |
pankso@179 | 81 |
pankso@179 | 82 edit_bookmarks() { |
pankso@179 | 83 yad --text-info \ |
pankso@179 | 84 --center --width=640 --height=480 --filename=${bm_txt} |
pankso@179 | 85 } |
pankso@179 | 86 |
pankso@179 | 87 # Generate cookies.html (for direct view of cookies in TazWeb) |
pankso@179 | 88 html_cookies() { |
pankso@179 | 89 html_header "$(gettext 'Cookies')" > ${cookies_html} |
pankso@179 | 90 echo '<pre>' >> ${cookies_html} |
pankso@179 | 91 IFS="|" |
pankso@179 | 92 cat ${cookies_txt} | while read line |
pankso@179 | 93 do |
pankso@179 | 94 cat >> ${cookies_html} << EOT |
pankso@179 | 95 ${line#\#HttpOnly_} |
pankso@179 | 96 EOT |
pankso@179 | 97 done; unset IFS |
pankso@179 | 98 echo '</pre>' >> ${cookies_html} |
pankso@179 | 99 html_footer $(cat $cookies_txt | wc -l) $(gettext "Cookies") - $(date) \ |
pankso@179 | 100 >> ${cookies_html} |
pankso@179 | 101 } |
pankso@179 | 102 |
pankso@179 | 103 clean_cookies() { |
pankso@179 | 104 rm ${cookies_txt}; touch ${cookies_txt} |
pankso@179 | 105 } |
pankso@179 | 106 |
pankso@179 | 107 # |
pankso@179 | 108 # Execute any shell_function |
pankso@179 | 109 # |
pankso@179 | 110 case "$1" in |
pankso@179 | 111 |
pankso@179 | 112 *_*) |
pankso@179 | 113 cmd=${1}; shift; ${cmd} ${@} ;; |
pankso@179 | 114 |
pankso@179 | 115 *) grep "[a-z]_*()" ${0} | awk '{print $1}' ;; |
pankso@179 | 116 |
pankso@179 | 117 esac; exit 0 |