# addrbook1.0
#-------------------------------------------------------------------------- #
# addrbook - just something #
# Copyright (C) 2008 Christian Schlaeppi #
# ------------------------------------------------------------------------- #
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program; if not, write to the Free Software #
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
# #
# ------------------------------------------------------------------------- #
# mailto: nekro89@gmail.com #
# ------------------------------------------------------------------------- #
#!/bin/bash
fun_add ()
{
echo -en "Adding a new contact to the adressbook\n"
# Getting new contacts name...
echo -en "Please enter new contact's name\n"
read cname
# Checking if Contacts already Exists...
if [ -e "$cname" ] ;
then
echo -en "The Contact you want to add already exists\n"
echo -en "Do you want to change that contact?(Yes/No)\n"
read cchange
# Changeing contact or not changing contact
case $cchange in
Y* | y* ) fun_change ;;
N* | n* )
echo -en "Okay Exiting...\n"
exit 0 ;;
esac
else
# Getting new contact's adress...
echo -en "Please enter new contact's adress\n"
read caddr
# Getting new contact's zip and city...
echo -en "Please enter new contact's city and zip-code\n"
read czip
# Getting new contact's fon number...
echo -en "Please enter new contact's phone number\n"
read cfon
# Getting new contact's mobile number...
echo -en "Please enter new contact's mobile number\n"
read cmobile
# Getting new contact's mail addr...
echo -en "Please enter new contact E-Mail adress\n"
read cmail
echo -en "\n\n"
# Creating new contact's file in directory book
touch book/"$cname"
# Writing contact's information
echo -en "-------------------------------------\n" >> book/"$cname"
echo -en "Name:\t$cname\n" >> book/"$cname"
echo -en "Adress:\t$caddr\n" >> book/"$cname"
echo -en "Zip/City:\t$czip\n" >> book/"$cname"
echo -en "Phone #:\t$cfon\n" >> book/"$cname"
echo -en "Mobile #:\t$cmobile\n" >> book/"$cname"
echo -en "E-Mail:\t$cmail\n" >> book/"$cname"
echo -en "-------------------------------------\n" >> book/"$cname"
cat book/"$cname"
echo -en "Job done, new contact has been added. Have a nice day!\n"
exit 0
fi
}
fun_search ()
{
# Getting Searchable String
echo -en "Type the contact you want to search in your adressbook (Case sensetive!)\n"
echo -en "Lists all Contacts which matches your entry\n"
read cfind
# Grep for the searched item
grep "$cfind" book/* > /dev/null 2>&1
# Check Item
if [ "$?" == "0" ] ;
then
# Item exists...
echo -en "Contact "$cfind" is an existing item of your adressbook:\n\n"
cat book/*"$cfind"*
else
# Item doesn't exist...
echo -en "Contact "$cfind" is not an existing item of your addressbook\n"
echo -en "Do you want to add this contact now? (Yes/No)\n"
read cadd
# Add or No add - Thats the question here ;)
case $cadd in
Y* | y* ) fun_add ;;
N* | n* ) echo -en "Okay. Exiting...\n"
esac
fi
}
fun_change ()
{
# Changing a contanct...
echo -en "Type Contact you want to change (Case sensetive)\n"
read schange
# Checking if contact exists
if [ -e book/"$schange" ] ;
then
echo -en "Which Atribute do you want to change?\n"
echo
echo -en "1 = Name\n"
echo -en "2 = Adress\n"
echo -en "3 = Zip Code and City\n"
echo -en "4 = Phone number\n"
echo -en "5 = Mobile Number\n"
echo -en "6 = E-Mail Adress\n"
echo -en "7 = Menu\n"
echo
cat book/*"$schange"
read catribute
case $catribute in
1 ) # Changeing Name
echo -en "Changing Name\n"
oldname=$(grep "Name" book/"$schange" | awk -F':' '{print $2}')
echo -en "Type new Name\n"
read newname
mv book/"$schange" book/"$newname"
sed -i "s/$oldname/\t$newname/g" book/"$newname"
cat book/"$newname" ;;
2 )
echo -en "Changing Adress\n"
oldadress=$(grep "Adress" book/"$schange" | awk -F':' '{print $2}')
echo -en "Type new Adress\n"
read newaddr
sed -i "s/$oldadress/\t$newaddr/g" book/"$schange"
cat book/"$schange" ;;
3 )
echo -en "Changing Zip/City\n"
oldcit=$(grep "Zip/City" book/"$schange" | awk -F':' '{print $2}')
echo -en "Type new Zip/City\n"
read newcit
sed -i "s/$oldcit/\t$newcit/g" book/"$schange"
cat book/"$schange" ;;
4 )
echo -en "Changing Phonenumber\n"
oldnum=$(grep "Phone" book/"$schange" | awk -F':' '{print $2}')
echo -en "Type new Phonenumber\n"
read newnum
sed -i "s/$oldnum/\t$newnum/g" book/"$schange"
cat book/"$schange" ;;
5 )
echo -en "Changing Mobilenumber\n"
oldmobnum=$(grep "Mobile" book/"$schange" | awk -F':' '{print $2}')
echo -en "Type new Mobilenumber\n"
read newmobnum
sed -i "s/$oldmobnum/\t$newmobnum/g" book/"$schange"
cat book/"$schange" ;;
6 )
echo -en "Changing E-Mail Adress\n"
oldmail=$(grep "E-Mail" book/"$schange" | awk -F':' '{print $2}')
echo -en "Type new E-Mail Adress\n"
read newmail
sed -i "s/$oldmail/\t$newmail/g" book/"$schange"
cat book/"$schange" ;;
7 )
fun_begin ;;
esac
else
# No contact found to change, may be added
echo -en "contact does not exist, do you want to add?(Yes/No)\n"
read add
case $add in
Y* | y* ) fun_add ;;
N* | n* ) echo -en "Okay, Exiting...\n"
exit 0 ;;
esac
fi
}
fun_begin ()
{
# Find out what user wants
echo -en "Type 'A' to add a contact\n"
echo -en "Type 'S' to Search a contact\n"
echo -en "Type 'ls' to list all contacts\n"
echo -en "Type 'ch' to change an contact\n"
echo -en "Type 'q' to quit\n"
read doing
# Finding out what the dude wants to...
case $doing in
A | a ) fun_add ;;
S | s ) fun_search ;;
ls ) fun_lsal ;;
ch ) fun_change;;
Q | q ) echo -en "Okay, exiting...\n"
exit 0 ;;
* ) echo -en "No such function found, please try again\n"
sleep 2
clear
fun_begin ;;
esac
}
fun_lsal ()
{
# listing all contact and checking id it is too much
amo=$(ls -lah book/* | wc -l)
if [ "$amo" -ge "20" ] ;
then
# If there are more than 20 entries...
echo -en "There are more then 20 entries in your book. Show them anyway?(Yes/No)\n"
read show
case $show in
Y* | y* ) cat book/* | more
echo -en "$amo Contacts in your addrbook\n" ;;
N* | n* ) echo -en "Okay, exiting...\n"
exit 0 ;;
esac
else
# if there are less then 20 entries...
cat book/*
echo -en "$amo Contacts in your addrbook\n"
fi
}
#########################################################################################
# Starting the whole stuff... #
#########################################################################################
clear
echo -en "Welcome to the local Adressbook Version 1.1\n"
# Testing for directory book
ls -lah book/ > /dev/null 2>&1
if [ "$?" == "0" ] ;
then
fun_begin
else
mkdir book
fun_begin
fi