File: update_messages

package info (click to toggle)
e2guardian 5.5.9-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,352 kB
  • sloc: cpp: 26,398; makefile: 640; sh: 324; perl: 55
file content (84 lines) | stat: -rwxr-xr-x 1,330 bytes parent folder | download | duplicates (5)
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
#!/bin/bash

# updates language files from ukenglish master

master=./messages_master
targets=*/messages

#read master into an array

i=0

for l in `cat ${master}|tr " " "^"`
do
  #echo ${l}

  if [ "${l:0:1}" = '"' ] 
  then
    n=`echo ${l}|cut -f1 -d,|tr -d '"'`
    d=`echo ${l}|cut -f2- -d,|tr "^" " "`
#    echo ${n}  ${d}
    ma[${n}]=${d}
    mi[i]=${n}
    let i=i+1
    #echo $i
  fi
done

nmi=${i}
#echo ${i}

for t in ${targets}
do
  echo "Checking ${t} ..."
  (
    cm=0
    cmi=${mi[${cm}]}
    if [ -n "${cmi}" ]
    then
    for l in `cat ${t}|tr " " "^"`
    do
	if [ -z "${cmi}" ]
	then
	    cmi=9999
        fi
      	if [ "${l:0:1}" != '"' ]
        then
            echo ${l}|tr "^" " "
	    continue
	else
    	    n=`echo ${l}|cut -f1 -d,|tr -d '"'`
	    while [ ${n} -gt ${cmi} ] && [ ${cm} -lt ${nmi} ]
	    do
		echo "\"${cmi}\",${ma[${mi[${cm}]}]}    # needs translation"
		let cm=cm+1
    		cmi=${mi[${cm}]}
	    done
            echo ${l}|tr "^" " "
		let cm=cm+1
    		cmi=${mi[${cm}]}
	fi
     done
     fi
     while [ ${cm} -lt ${nmi} ]
     do
	echo "\"${cmi}\",${ma[${mi[${cm}]}]}"
	let cm=cm+1
    	cmi=${mi[${cm}]}
     done
  ) > ${t}.new

  if diff ${t} ${t}.new >/dev/null
  then
     rm ${t}.new
	:
  else
     mv ${t} ${t}.sav
     mv ${t}.new ${t}
     git add ${t}
  fi

done
	
exit 0