diff options
author | Lukáš Jirkovský | 2015-08-28 12:50:04 +0200 |
---|---|---|
committer | Lukáš Jirkovský | 2015-08-28 12:50:04 +0200 |
commit | 02c9858eae549039848b29fbf90b878337c77486 (patch) | |
tree | db3388328a57c3e8b485c7909df7608dfb5cd362 /vok.install | |
parent | c4df6270f41cfb6e5ca5ebf60c7bff0016cdfed4 (diff) | |
download | aur-02c9858eae549039848b29fbf90b878337c77486.tar.gz |
update to use xmlstarlet
Diffstat (limited to 'vok.install')
-rw-r--r-- | vok.install | 108 |
1 files changed, 39 insertions, 69 deletions
diff --git a/vok.install b/vok.install index 179a7754544b..1369b62bfdb6 100644 --- a/vok.install +++ b/vok.install @@ -1,88 +1,58 @@ + +# tests whether vok is installed +test_vok() { + return `xml sel -t -v 'count(//layoutList/layout/configItem/name[.="vok"])' /usr/share/X11/xkb/rules/evdev.xml` +} + +# insert vok to the layout list +# uses a nasty trick of appending the vok layout to the end of the file +# and then moving the layout to its place +insert_vok() { + # prepare a temp file + TMPFILE=`mktemp` + head -n -1 /usr/share/X11/xkb/rules/evdev.xml >> $TMPFILE + cat /usr/share/vok/vok.xml >> $TMPFILE + tail -n 1 /usr/share/X11/xkb/rules/evdev.xml >> $TMPFILE + # move the vok layout to its place + xml ed -L -m '//layout[configItem/name="vok"]' '//layoutList' $TMPFILE + # move the temp file to evdev.xml + cat $TMPFILE > /usr/share/X11/xkb/rules/evdev.xml +} + +# removes vok from the layout list +remove_vok() { + xml ed -L -d '//layout[configItem/name="vok"]' /usr/share/X11/xkb/rules/evdev.xml +} + post_install() { perl -ne '/^[[:blank:]]*vok[[:blank:]]{1,}/ && exit 1' /usr/share/X11/xkb/rules/xorg.lst && ( sed -i "s/^! layout$/! layout\n vok vogo's keyboard (czech)/" /usr/share/X11/xkb/rules/evdev.lst sed -i "s/^! variant$/! variant\n basic vok: Qwerty (national chars with AltGr)\n czech vok: Qwerty (digits with AltGr)\n qwertz vok: Qwertz (national chars with AltGr)\n czech_qwertz vok: Qwertz (digits with AltGr)/" /usr/share/X11/xkb/rules/xorg.lst;) -tmpfile=$(mktemp) -echo 'copy $d := doc("/usr/share/X11/xkb/rules/evdev.xml") -modify ( -insert node -<layout> - <configItem> - <name>vok</name> - <shortDescription>Vogo'\''s kbd</shortDescription> - <description>Czech keyboard by Vogo</description> - <languageList><iso639Id>cze</iso639Id></languageList> - <countryList><iso3166Id>CZ</iso3166Id></countryList> - </configItem> - <variantList> - <variant> - <configItem> - <name>basic</name> - <description>Qwerty (national chars with AltGr)</description> - </configItem> - </variant> - <variant> - <configItem> - <name>czech</name> - <description>Qwerty (digits with AltGr)</description> - </configItem> - </variant> - <variant> - <configItem> - <name>qwertz</name> - <description>Qwertz (national chars with AltGr)</description> - </configItem> - </variant> - <variant> - <configItem> - <name>czech_qwertz</name> - <description>Qwertz (digits with AltGr)</description> - </configItem> - </variant> - </variantList> -</layout> + insert_vok -as first into $d/xkbConfigRegistry/layoutList -) -return $d' | qizx - | /bin/sed '/^ *$/d' > $tmpfile -if [ "${PIPESTATUS[1]}" -eq 0 ]; then - mv $tmpfile /usr/share/X11/xkb/rules/evdev.xml -fi -chmod a+r /usr/share/X11/xkb/rules/evdev.xml echo "-- Please read http://www.abclinuxu.cz/blog/origami/2006/12/21/162644" - /bin/true } post_upgrade() { perl -ne '/^[[:blank:]]*vok[[:blank:]]{1,}/ && exit 1' /usr/share/X11/xkb/rules/xorg.lst && ( sed -i "s/^! layout$/! layout\n vok vogo's keyboard (czech)/" /usr/share/X11/xkb/rules/xorg.lst sed -i "s/^! variant$/! variant\n basic vok: Qwerty (national chars with AltGr)\n czech vok: Qwerty (digits with AltGr)\n qwertz vok: Qwertz (national chars with AltGr)\n czech_qwertz vok: Qwertz (digits with AltGr)/" /usr/share/X11/xkb/rules/xorg.lst;) + + if test_vok ; then + insert_vok + fi + echo "-- Please read http://www.abclinuxu.cz/blog/origami/2006/12/21/162644" - /bin/true -/bin/true } pre_remove() { -sed -ni '/vok vogo'\''s keyboard (czech)$/!p' /usr/share/X11/xkb/rules/xorg.lst -sed -ni '/ basic vok: Qwerty (national chars with AltGr)$/!p' /usr/share/X11/xkb/rules/xorg.lst -sed -ni '/ czech vok: Qwerty (digits with AltGr)/!p' /usr/share/X11/xkb/rules/xorg.lst -sed -ni '/ qwertz vok: Qwertz (national chars with AltGr)/!p' /usr/share/X11/xkb/rules/xorg.lst -sed -ni '/ czech_qwertz vok: Qwertz (digits with AltGr)/!p' /usr/share/X11/xkb/rules/xorg.lst -tmpfile=$(mktemp) -echo 'copy $d := doc("/usr/share/X11/xkb/rules/evdev.xml") -modify ( -delete node $d/xkbConfigRegistry/layoutList/layout[configItem/name='\''vok'\''] -) -return $d' | qizx - | /bin/sed '/^ *$/d' >$tmpfile -if [ "${PIPESTATUS[1]}" -eq 0 ]; then - mv $tmpfile /usr/share/X11/xkb/rules/evdev.xml -fi -chmod a+r /usr/share/X11/xkb/rules/evdev.xml -/bin/true -} + sed -ni '/vok vogo'\''s keyboard (czech)$/!p' /usr/share/X11/xkb/rules/xorg.lst + sed -ni '/ basic vok: Qwerty (national chars with AltGr)$/!p' /usr/share/X11/xkb/rules/xorg.lst + sed -ni '/ czech vok: Qwerty (digits with AltGr)/!p' /usr/share/X11/xkb/rules/xorg.lst + sed -ni '/ qwertz vok: Qwertz (national chars with AltGr)/!p' /usr/share/X11/xkb/rules/xorg.lst + sed -ni '/ czech_qwertz vok: Qwertz (digits with AltGr)/!p' /usr/share/X11/xkb/rules/xorg.lst -op=$1 -shift + remove_vok +} -$op "$@" |