This repository has been archived by the owner on Feb 9, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlampadasql
executable file
·85 lines (69 loc) · 1.65 KB
/
lampadasql
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
#!/bin/sh
check_var()
{
[ -n "$1" ] && return
echo "Environment variable $2 is not set."
echo "Read the comments in file 'setenv.sh' how to fix that."
exit -1
}
check_file()
{
[ -e "$1" ] && return
echo "File $1 does not exist." 1>&2
exit 1
}
m4call()
{
local lang=$1
shift
m4 $M4DEBUG -P -DI18N_lang_code=${lang} $LAMPADAS_SQL/common.m4 "$@" -
}
all_files()
{
for lang in "$@"; do
lang="${lang%.m4}"
file="$lang.m4"
check_file "$file"
filter="$LAMPADAS_SQL/$lang.input"
if [ -x "$filter" ]; then
echo "Using filter $filter" 1>&2
$LAMPADAS_SQL/common.input < ${file} \
| $filter \
| m4call ${lang} $COMMAND
else
$LAMPADAS_SQL/common.input < ${file} \
| m4call ${lang} $COMMAND
fi
done
}
check_var "$LAMPADAS_SQL" LAMPADAS_SQL
DEFAULT_LANG=$( echo "${LANG%_*}" | tr 'a-z' 'A-Z' )
if [ -z "$1" ]; then
echo "\
USAGE: lampadasql { OPTION } COMMAND { LANGUAGE }
This will pipe the file <COMMAND> together with each <LANGUAGE>
through the m4 macro processor. The suffix '.m4' will be appended
if not present.
If no value for <LANGUAGE> is given, the first two letters of variable
\$LANG are used. Right now that would be $DEFAULT_LANG.
Typically the output of lampadasql is further piped into /usr/bin/psql
to execute SQL statements:
lampadasql update EN | psql lampadas
OPTIONS:
-m4debug <flags> Pass <flags> as value of option -d to m4.
" 1>&2
exit 1
fi
if [ "$1" = "-m4debug" ]; then
shift
M4DEBUG="-d$1"
shift
fi
COMMAND="${1%.m4}.m4"
check_file "$COMMAND"
shift
if [ -z "$1" ]; then
all_files $DEFAULT_LANG
else
all_files "$@"
fi