#!/bin/bash
# simple html form (eg for logins) filler (and manager) for uzbl.
# uses settings files like: $keydir/
# files contain lines like: :
# user arg 1:
# edit: force editing the file (falls back to new if not found)
# new: start with a new file.
# load: try to load from file into form
# something else (or empty): if file not available: new, otherwise load.
keydir=${XDG_DATA_HOME:-$HOME/.local/share}/uzbl/forms
[ -d "`dirname $keydir`" ] || exit 1
[ -d "$keydir" ] || mkdir "$keydir"
editor=${VISUAL}
if [[ -z ${editor} ]]; then
#editor='gvim'
editor='urxvt -e vim'
fi
config=$1; shift
pid=$1; shift
xid=$1; shift
fifo=$1; shift
socket=$1; shift
url=$1; shift
title=$1; shift
action=$1
[ -d $keydir ] || mkdir $keydir || exit 1
if [ "$action" != 'edit' -a "$action" != 'new' -a "$action" != 'load' ]
then
action=new
[[ -e $keydir/$domain ]] && action=load
elif [ "$action" == 'edit' ] && [[ ! -e $keydir/$domain ]]
then
action=new
fi
domain=$(echo $url | sed -re 's|(http\|https)+://([A-Za-z0-9\.]+)/.*|\2|')
#regex='s|.*.*|\1: |p' # sscj's first version, does not work on http://wiki.archlinux.org/index.php?title=Special:UserLogin&returnto=Main_Page
regex='s|.*> $fifo
else
if [ "$action" == 'new' ]
then
curl "$url" | grep ' $keydir/$domain
fi
[[ -e $keydir/$domain ]] || exit 3 #this should never happen, but you never know.
$editor $keydir/$domain #TODO: if user aborts save in editor, the file is already overwritten
fi