#!/bin/sh # # Input shell script for teladrf.tab # .. ~/scripts/screen init_attr() { set_attr NORMAL BLACK WHITE set_attr TITLE BLUE WHITE set_attr PROMPT RED WHITE set_attr ENTRY BLACK WHITE return } clear_all_fields() { namn=""; adress=""; postadress=""; telefon=""; fax="" nyckelord=""; kommentar="" return } draw_screen() { cls ${A_NORMAL} echo -e " ${A_TITLE}1 Namn:\t${A_ENTRY}$namn ${A_TITLE}2 Adress:\t${A_ENTRY}$adress ${A_TITLE}3 Postadress:\t${A_ENTRY}$postadress ${A_TITLE}4 Telefon:\t${A_ENTRY}$telefon ${A_TITLE}5 Fax:\t\t${A_ENTRY}$fax ${A_TITLE}6 Nyckelord:\t${A_ENTRY}$nyckelord ${A_TITLE}7 Kommentar:\t${A_ENTRY}$kommentar " echo -n "${A_PROMPT}Command (1-7, a, d, c, q, s, ?): ${A_NORMAL}" return } help() { cls ${A_NORMAL} echo " 1-8 edit field a add record d delete record c clear all fields q query s sort data file ? this help page " read } chk_first() { if [ $first -eq 0 ]; then awk_string="$awk_string && " fi first=0 return } query() { first=1 awk_string="BEGIN {FS = \"\t\"}; " if [ "$namn" != "" ]; then chk_first awk_string="$awk_string (\$1 ~ /$namn/)" fi if [ "$adress" != "" ]; then chk_first awk_string="$awk_string (\$2 ~ /$adress/)" fi if [ "$postadress" != "" ]; then chk_first awk_string="$awk_string (\$3 ~ /$postadress/)" fi if [ "$telefon" != "" ]; then chk_first awk_string="$awk_string (\$4 ~ /$telefon/)" fi if [ "$fax" != "" ]; then chk_first awk_string="$awk_string (\$5 ~ /$fax/)" fi if [ "$nyckelord" != "" ]; then chk_first awk_string="$awk_string (\$6 ~ /$nyckelord/)" fi if [ "$kommentar" != "" ]; then chk_first awk_string="$awk_string (\$7 ~ /$kommentar/)" fi awk_string="$awk_string {printf " awk_string="${awk_string} \"Namn: %s\n" awk_string="${awk_string}Adress: %s\n" awk_string="${awk_string}Postadress: %s\n" awk_string="${awk_string}Telefon: %s\n" awk_string="${awk_string}Fax: %s\n" awk_string="${awk_string}Nyckelord: %s\n" awk_string="${awk_string}Kommentar: %s\n\n\", " awk_string="${awk_string} \$1, \$2, \$3, \$4, \$5, \$6, \$7}" # echo $awk_string # read cls ${A_NORMAL} awk "$awk_string" $datafile | less return } delete() { echo -n "Really delete (y/n)? " read r if [ "$r" != "y" ]; then return; fi first=1 awk_string="BEGIN {FS = \"\t\"}; ! (" if [ "$namn" != "" ]; then chk_first awk_string="$awk_string (\$1 ~ /$namn/)" fi if [ "$adress" != "" ]; then chk_first awk_string="$awk_string (\$2 ~ /$adress/)" fi if [ "$postadress" != "" ]; then chk_first awk_string="$awk_string (\$3 ~ /$postadress/)" fi if [ "$telefon" != "" ]; then chk_first awk_string="$awk_string (\$4 ~ /$telefon/)" fi if [ "$fax" != "" ]; then chk_first awk_string="$awk_string (\$5 ~ /$fax/)" fi if [ "$nyckelord" != "" ]; then chk_first awk_string="$awk_string (\$6 ~ /$nyckelord/)" fi if [ "$kommentar" != "" ]; then chk_first awk_string="$awk_string (\$7 ~ /$kommentar/)" fi if [ $first -eq 1 ]; then echo "Error: no fields specified." sleep 2 return fi awk_string="$awk_string ) {print \$0}" tmp="/tmp/deltmp.$RANDOM" awk "$awk_string" $datafile >> $tmp cp $tmp $datafile rm $tmp return } do_sort() { sort -o $datafile $datafile } ######################################################################### ######################################################################### datafile=~/datafiles/teladrf.tab init_attr draw_screen while read r; do case $r in 1) echo -n "${A_PROMPT}Namn: ${A_NORMAL}" read namn ;; 2) echo -n "${A_PROMPT}Adress: ${A_NORMAL}" read adress ;; 3) echo -n "${A_PROMPT}Postadress: ${A_NORMAL}" read postadress ;; 4) echo -n "${A_PROMPT}Telefon: ${A_NORMAL}" read telefon ;; 5) echo -n "${A_PROMPT}Fax: ${A_NORMAL}" read fax ;; 6) echo -n "${A_PROMPT}Nyckelord: ${A_NORMAL}" read nyckelord ;; 7) echo -n "${A_PROMPT}Kommentar: ${A_NORMAL}" read kommentar ;; a) echo "$namn $adress $postadress $telefon $fax $nyckelord $kommentar" >> $datafile clear_all_fields ;; d) delete ;; c) clear_all_fields ;; q) query ;; s) do_sort ;; \?) help ;; esac draw_screen done cls ${A_NONE} .