summaryrefslogtreecommitdiffstats
path: root/gconf/gconf-merge-schema
blob: 992c162e692ff32ea1d201977bca861f38388b06 (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
#!/bin/bash
if [ ! "$1" -a ! "$2" ]; then
  echo "Usage: $0 output.schemas [--domain gettextdomain] file1.schemas [file2.schemas [...]]"
  exit 1
fi

OUTFILE="$1"
DOMAIN=""
shift

if [ "$1" = "--domain" ]; then
  shift
  DOMAIN=$1
  shift
fi

echo '<?xml version="1.0"?>' > "$OUTFILE"
echo '<gconfschemafile><schemalist>' >> "$OUTFILE"

while [ "$1" ]; do
  if [ -f "$1" ]; then
    sed -e '/<?xml/d' \
        -e 's|<gconfschemafile>||g' \
	-e 's|</gconfschemafile>||g' \
        -e 's|<schemalist>||g' \
	-e 's|</schemalist>||g' "$1" >> "$OUTFILE"
  fi
  shift
done
  
echo '</schemalist></gconfschemafile>' >> "$OUTFILE"
if [ "$DOMAIN" != "" ]; then
  sed -ri "s/^([[:space:]]*)(<locale name=\"C\">)/\1<gettext_domain>$DOMAIN<\/gettext_domain>\n\1\2/; /^[[:space:]]*<locale name=\"[^C]/,/^[[:space:]]*<\/locale>[[:space:]]*\$/ d; /^$/d; s/<\/schema>$/&\n/" "$OUTFILE"
fi