-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadd_ambar_record
executable file
·115 lines (87 loc) · 1.68 KB
/
add_ambar_record
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/bash
AMBAR=~/svn/ambar/ambar.txt
DATE=`date +%F`
TYPES_LIST=`head -1000 $AMBAR | grep -v ^#| awk '{print $2}'|sort -u | grep -vE 'банк|питомец'`;
function add_string {
local STRING=$1
echo "will I add the line"
echo
echo -e "$STRING"
echo
echo "y/n:"
read answer
if [ "$answer" == 'y' ]
then sed -i "1i $STRING" $AMBAR
svn diff $AMBAR
else echo "noop"
fi
}
######
usage () {
echo "add record: $(basename $0) -t TYPE -s sum [-c comment]"
echo "get help: $(basename $0) -h"
echo "list types: $(basename $0) -l"
exit
}
#####
list_types () {
for T in $TYPES_LIST
do echo $T
done
}
###################
while getopts ":t:s:c:hl" opt; do
case $opt in
t) TYPE=$OPTARG
#echo "FLAG was triggered, Parameter: $OPTARG"
;;
s) sum=$OPTARG
;;
c) comment=$OPTARG
;;
h) usage
;;
l) list_types|column
exit
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done
if [ -n "$TYPE" ] && [ -n "$sum" ]
then
# batch mode
add_string "$DATE\t$TYPE\t\t$sum\t$comment"
exit
fi
for TYPE in $TYPES_LIST
do i=$(($i+1))
TYPES[$i]="$TYPE"
#echo "=$i=$TYPE"
done
#print array
i=1
while [ $i -lt $((1+${#TYPES[@]})) ]
do echo "$i. ${TYPES[$i]}"
i=$((i+1))
done |column
echo
echo "enter type [#]:"
read i
TYPE=${TYPES[$i]}
if [ -z "$TYPE" ]
then echo "no type choosen"
exit
else echo "choosen $TYPE"
fi
echo "enter sum":
read sum
echo "enter comment [optional]":
read comment
add_string "$DATE\t$TYPE\t\t$sum\t$comment"