aboutsummaryrefslogtreecommitdiffstats
path: root/mk-pot
blob: 9a2cc82fe14044af8188a6e876e777fb70bf51c0 (plain)
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
#!/usr/bin/bash
# Create remove-old-kernels.pot from remove-old-kernels bash script

# Path to output file
outpot=po/remove-old-kernels.pot

# Create new output file and add the default header
cat pot_header.txt > $outpot

# Function to check found strings for duplicates
chk_dupe() {
# Loop through rawarray to check if msgid already exists (isdupe uses logical 0=true)
isdupe=1
	for ((y=1;y<$((x+1));y++)); do
		if [[ "$1" == "${rawarray[$y]}" ]]; then
			isdupe=0
			break
		fi
	done
	# Dupe not found so increment line index and add string to check array
	((x++))
	rawarray[$x]="$1"
return $isdupe
}

rawarray=(); x=0 ; y=0
# Get raw i18n strings (max two per script line)
while IFS='' read -r line; do
	if echo "$line"|grep -q '(i18n'; then
		# Look for the first occurrence of i18n and extract raw text only
		idstr1="$(echo "$line"|grep i18n|sed "s/\$(i18n/@/g"|cut -d@ -f2|cut -d\" -f2| sed 's/").*//')"
			isdupe=0
			# Check it is not dupe
			if ! chk_dupe "$idstr1"; then
				# Output line
				IFS=''
				echo -e "msgid  \""$idstr1"\"\nmsgstr \"\"\n" >> $outpot
			fi	
		# Look for a second occurrence of i18n and extract raw text only
		idstr2="$(echo "$line"|grep i18n|sed 's/\$(i18n/@/g'|cut -d@ -f3|cut -d\" -f2| sed 's/").*//')"
		# Check it exists
		if [[ ${#idstr2} > 0 ]]; then
			isdupe=0
			# Check it is not dupe
			if ! chk_dupe "$idstr2"; then
				# Output line
				IFS=''
	 			echo -e "msgid  \""$idstr2"\"\nmsgstr \"\"\n" >> $outpot
			fi
	fi
else
	# Skip this script line
	continue	
fi
done < remove-old-kernels

# Add date and time for last pot file change
sed -i "s/POT-Creation-Date: /&$(date '+%F %R%z')/" $outpot

# Update po files with any string changes from the pot file
echo "Updating *.po files with any string changes"
pushd po
make update-po
popd