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