]> git.proxmox.com Git - mirror_iproute2.git/blame - examples/gaiconf
man: tc-taprio.8: fix syntax error
[mirror_iproute2.git] / examples / gaiconf
CommitLineData
697af1fc
YH
1#!/bin/sh
2
3#
4# Setup address label from /etc/gai.conf
5#
6# Written by YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>, 2010.
7#
8
9IP=ip
10DEFAULT_GAICONF=/etc/gai.conf
11verbose=
12debug=
13
14function run ()
15{
16 if [ x"$verbose" != x"" ]; then
17 echo "$@"
18 fi
19 if [ x"$debug" = x"" ]; then
20 "$@"
21 fi
22}
23
24function do_load_config ()
25{
26 file=$1; shift
27 flush=1
28 cat $file | while read command prefix label; do
29 if [ x"$command" = x"#label" ]; then
30 if [ ${flush} = 1 ]; then
31 run ${IP} -6 addrlabel flush
32 flush=0
33 fi
34 run ${IP} -6 addrlabel add prefix $prefix label $label
35 fi
36 done
37}
38
39function do_list_config ()
40{
41 ${IP} -6 addrlabel list | while read p pfx l lbl; do
42 echo label ${pfx} ${lbl}
43 done
44}
45
46function help ()
47{
48 echo "Usage: $0 [-v] {--list | --config [ ${DEFAULT_GAICONF} ] | --default}"
49 exit 1
50}
51
52TEMP=`getopt -o c::dlv -l config::,default,list,verbose -n gaiconf -- "$@"`
53
54if [ $? != 0 ]; then
55 echo "Terminating..." >&2
56 exit 1
57fi
58
59TEMPFILE=`mktemp`
60
61eval set -- "$TEMP"
62
63while true ; do
64 case "$1" in
65 -c|--config)
66 if [ x"$cmd" != x"" ]; then
67 help
68 fi
69 case "$2" in
70 "") gai_conf="${DEFAULT_GAICONF}"
71 shift 2
72 ;;
73 *) gai_conf="$2"
74 shift 2
75 esac
76 cmd=config
77 ;;
78 -d|--default)
79 if [ x"$cmd" != x"" ]; then
80 help
81 fi
82 gai_conf=${TEMPFILE}
83 cmd=config
84 ;;
85 -l|--list)
86 if [ x"$cmd" != x"" ]; then
87 help
88 fi
89 cmd=list
90 shift
91 ;;
92 -v)
93 verbose=1
94 shift
95 ;;
96 --)
97 shift;
98 break
99 ;;
100 *)
101 echo "Internal error!" >&2
102 exit 1
103 ;;
104 esac
105done
106
107case "$cmd" in
108 config)
109 if [ x"$gai_conf" = x"${TEMPFILE}" ]; then
110 sed -e 's/^[[:space:]]*//' <<END_OF_DEFAULT >${TEMPFILE}
111 label ::1/128 0
112 label ::/0 1
113 label 2002::/16 2
114 label ::/96 3
115 label ::ffff:0:0/96 4
116 label fec0::/10 5
117 label fc00::/7 6
118 label 2001:0::/32 7
119END_OF_DEFAULT
120 fi
121 do_load_config "$gai_conf"
122 ;;
123 list)
124 do_list_config
125 ;;
126 *)
127 help
128 ;;
129esac
130
131rm -f "${TEMPFILE}"
132
133exit 0
134