aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/data/uzbl/scripts/cookies.sh
diff options
context:
space:
mode:
authorGravatar Abel `00z' Camarillo <00z@the00z.org>2009-06-28 13:03:22 -0500
committerGravatar Abel `00z' Camarillo <00z@the00z.org>2009-06-28 13:03:22 -0500
commit135b490546cd5833aec76588825eba6634f8fd21 (patch)
tree2d6d6b3e9f29b386988b1867dc39533d197f34f2 /examples/data/uzbl/scripts/cookies.sh
parentd36686924a2b7d81ad5c74b38249e53af0b6449e (diff)
more portability on shell scripts
i haven't really tested this, but i expect that someone that knows the code (and cares about it) to do the last portability changes. i don't think that this scripts are going to run with a shell different than bash anyway...
Diffstat (limited to 'examples/data/uzbl/scripts/cookies.sh')
-rwxr-xr-xexamples/data/uzbl/scripts/cookies.sh53
1 files changed, 32 insertions, 21 deletions
diff --git a/examples/data/uzbl/scripts/cookies.sh b/examples/data/uzbl/scripts/cookies.sh
index 56b9c79..03ddef8 100755
--- a/examples/data/uzbl/scripts/cookies.sh
+++ b/examples/data/uzbl/scripts/cookies.sh
@@ -1,4 +1,6 @@
-#!/bin/bash
+#!/bin/sh
+
+set -n;
# THIS IS EXPERIMENTAL AND COULD BE INSECURE !!!!!!
@@ -24,10 +26,10 @@
# http://kb.mozillazine.org/Cookies.txt
# don't always append cookies, sometimes we need to overwrite
-cookie_config=${XDG_CONFIG_HOME:-$HOME/.config}/uzbl/cookies
-[ -z "$cookie_config" ] && exit 1
-[ -d ${XDG_DATA_HOME:-$HOME/.local/share}/uzbl/ ] && cookie_data=${XDG_DATA_HOME:-$home/.local/share}/uzbl/cookies.txt || exit 1
-
+cookie_config=${XDG_CONFIG_HOME:-${HOME}/.config}/uzbl/cookies
+[ "x$cookie_config" = x ] && exit 1
+[ -d "${XDG_DATA_HOME:-${HOME}/.local/share}/uzbl/" ] &&\
+cookie_data=${XDG_DATA_HOME:-${HOME}/.local/share}/uzbl/cookies.txt || exit 1
notifier=
#notifier=notify-send
@@ -60,24 +62,24 @@ field_name=
field_value=
field_exp='end_session'
-function notify () {
+notify() {
[ -n "$notifier" ] && $notifier "$@"
}
# FOR NOW LETS KEEP IT SIMPLE AND JUST ALWAYS PUT AND ALWAYS GET
-function parse_cookie () {
+parse_cookie() {
IFS=$';'
first_pair=1
for pair in $cookie
do
- if [ "$first_pair" == 1 ]
+ if [ "x$first_pair" = x1 ]
then
field_name=${pair%%=*}
field_value=${pair#*=}
first_pair=0
else
- read -r pair <<< "$pair" #strip leading/trailing wite space
+ echo "$pair" | read -r pair #strip leading/trailing wite space
key=${pair%%=*}
val=${pair#*=}
[ "$key" == expires ] && field_exp=`date -u -d "$val" +'%s'`
@@ -89,7 +91,7 @@ function parse_cookie () {
}
# match cookies in cookies.txt against hostname and path
-function get_cookie () {
+get_cookie() {
path_esc=${path//\//\\/}
search="^[^\t]*$host\t[^\t]*\t$path_esc"
cookie=`awk "/$search/" $cookie_data 2>/dev/null | tail -n 1`
@@ -99,13 +101,15 @@ function get_cookie () {
false
else
notify "Get_cookie: search: $search in $cookie_data -> result: $cookie"
- read domain alow_read_other_subdomains path http_required expiration name value <<< "$cookie"
+ echo "$cookie" | \
+ read domain alow_read_other_subdomains path http_required expiration name \
+ value;
cookie="$name=$value"
true
fi
}
-function save_cookie () {
+save_cookie() {
if parse_cookie
then
data="$field_domain\tFALSE\t$field_path\tFALSE\t$field_exp\t$field_name\t$field_value"
@@ -116,8 +120,8 @@ function save_cookie () {
fi
}
-[ $action == PUT ] && save_cookie
-[ $action == GET ] && get_cookie && echo "$cookie"
+[ "x$action" = xPUT ] && save_cookie
+[ "x$action" = xGET ] && get_cookie && echo "$cookie"
exit
@@ -125,25 +129,32 @@ exit
# TODO: implement this later.
# $1 = section (TRUSTED or DENY)
# $2 =url
-function match () {
+match() {
sed -n "/$1/,/^\$/p" $cookie_config 2>/dev/null | grep -q "^$host"
}
-function fetch_cookie () {
+fetch_cookie() {
cookie=`cat $cookie_data`
}
-function store_cookie () {
+store_cookie() {
echo $cookie > $cookie_data
}
if match TRUSTED $host
then
- [ $action == PUT ] && store_cookie $host
- [ $action == GET ] && fetch_cookie && echo "$cookie"
+ [ "x$action" = xPUT ] && store_cookie $host
+ [ "x$action" = xGET ] && fetch_cookie && echo "$cookie"
elif ! match DENY $host
then
- [ $action == PUT ] && cookie=`zenity --entry --title 'Uzbl Cookie handler' --text "Accept this cookie from $host ?" --entry-text="$cookie"` && store_cookie $host
- [ $action == GET ] && fetch_cookie && cookie=`zenity --entry --title 'Uzbl Cookie handler' --text "Submit this cookie to $host ?" --entry-text="$cookie"` && echo $cookie
+ [ "x$action" = xPUT ] && \
+ cookie=`zenity --entry --title 'Uzbl Cookie handler' \
+ --text "Accept this cookie from $host ?" --entry-text="$cookie"` \
+ && store_cookie $host
+
+ [ "x$action" = xGET ] && fetch_cookie \
+ && cookie=`zenity --entry --title 'Uzbl Cookie handler' \
+ --text "Submit this cookie to $host ?" --entry-text="$cookie"` \
+ && echo $cookie
fi
exit 0