summaryrefslogtreecommitdiff
path: root/bin/changedns
authorbenmeyer <benmeyer>2002-10-29 16:11:39 (UTC)
committer benmeyer <benmeyer>2002-10-29 16:11:39 (UTC)
commit2c3aa49e64a63f475bd60707c8cc105829691ab1 (patch) (unidiff)
tree016296ff6ae9857cd1fc53ed43db4c5fe6937e08 /bin/changedns
parente63cecc3821eda0cb3ace99479112d68bdc023e6 (diff)
downloadopie-2c3aa49e64a63f475bd60707c8cc105829691ab1.zip
opie-2c3aa49e64a63f475bd60707c8cc105829691ab1.tar.gz
opie-2c3aa49e64a63f475bd60707c8cc105829691ab1.tar.bz2
changed the name so *.sh
Diffstat (limited to 'bin/changedns') (more/less context) (ignore whitespace changes)
-rwxr-xr-xbin/changedns111
1 files changed, 111 insertions, 0 deletions
diff --git a/bin/changedns b/bin/changedns
new file mode 100755
index 0000000..4760a67
--- a/dev/null
+++ b/bin/changedns
@@ -0,0 +1,111 @@
1#!/bin/bash
2
3 SN="`basename $0`"# base portion of our filename
4 AE="-a" # switch to add an entry
5 RE="-r" # swithc to remove an entry
6 EL="/tmp/resolv.conf"# expected location of the system nameserver config file
7 ARGS="$@" # friendly variable name for all args
8
9usage(){
10 echo "usage:
11$SN -a {ip} [{ip}...]
12$SN -r {ip} [{ip}...]"
13}
14
15#if are there at least two arguments?
16if [ "$#" -gt 1 ]
17then
18
19 #remove any old resolv.conf file
20 rm .resolve.conf .resolve.old .resolve.new 2> /dev/null
21
22 #cast current nameserver file into OLD
23 cat "$EL" > .resolve.old
24
25 #build IP list
26 for ARG in $ARGS
27 do
28 if [ "$ARG" != "$1" ]
29 then
30 IP_LIST=`echo "$IP_LIST $ARG"`
31 fi
32 done
33
34 #select case on first switch
35 case "$1" in
36
37 #case '-a'
38 "$AE")
39
40 #for each IP in IP_LIST
41 for IP in $IP_LIST
42 do
43 #add nameserver entery to .newfile
44 echo "nameserver $IP" >> .resolve.conf
45
46 #cat OLD into grep excluding IP lines,
47 #storing results into NEW
48 cat .resolve.old | grep -v "$IP" > .resolve.new
49
50 #set OLD to NEW
51 cat .resolve.new > .resolve.old
52
53 done
54
55 #cat OLD onto end of .newfile
56 cat .resolve.new >> .resolve.conf
57
58 #clean up work files
59 rm .resolve.new .resolve.old
60
61 #move old conf file to old conf file.bak
62 mv "$EL" "$EL.bak"
63
64 #move .newfile to resolve.conf file
65 mv .resolve.conf "$EL"
66
67 echo "Added $IP_LIST to $EL"
68 ;;
69
70 #case '-r'
71 "$RE")
72
73 #for each IP in IP_LIST
74 for IP in $IP_LIST
75 do
76 #cat OLD into grep excluding IP lines,
77 #storing results into NEW
78 cat .resolve.old | grep -v "$IP" > .resolve.new
79
80 #set OLD to NEW
81 cat .resolve.new > .resolve.old
82
83 done
84
85 #move old conf file to old conf file.bak
86 mv "$EL" "$EL.bak"
87
88 #move .newfile to resolve.conf file
89 mv .resolve.new "$EL"
90
91 echo "Removed $IP_LIST from $EL"
92
93 ;;
94
95 #case else
96 *)
97
98 usage
99 ;;
100
101
102 #end switch
103 esac
104
105#else
106else
107
108 usage
109
110#end
111fi