From c1a33466d886d12e37b78903d767ff0814c957f1 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 3 Feb 2012 21:22:12 +0100 Subject: [PATCH] * util/grub-kbdcomp.in: Add decent help and gettextize. * docs/man/grub-kbdcomp.h2m: New file. --- ChangeLog | 5 +++ docs/man/grub-kbdcomp.h2m | 10 ++++++ util/grub-kbdcomp.in | 65 +++++++++++++++++++++++++++++++++++++-- 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 docs/man/grub-kbdcomp.h2m diff --git a/ChangeLog b/ChangeLog index 431adb41a..73932a307 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-02-03 Vladimir Serbinenko + + * util/grub-kbdcomp.in: Add decent help and gettextize. + * docs/man/grub-kbdcomp.h2m: New file. + 2012-02-03 Vladimir Serbinenko Migrate grub-mkimage.c to argp. diff --git a/docs/man/grub-kbdcomp.h2m b/docs/man/grub-kbdcomp.h2m new file mode 100644 index 000000000..d81f9157e --- /dev/null +++ b/docs/man/grub-kbdcomp.h2m @@ -0,0 +1,10 @@ +[NAME] +grub-kbdcomp \- generate a GRUB keyboard layout file +[DESCRIPTION] +grub-kbdcomp processes a X keyboard layout description in +.BR keymaps (5) +format into a format that can be used by GRUB's +.B keymap +command. +[SEE ALSO] +.BR grub-mklayout (8) diff --git a/util/grub-kbdcomp.in b/util/grub-kbdcomp.in index 05e516d23..2be541ba0 100644 --- a/util/grub-kbdcomp.in +++ b/util/grub-kbdcomp.in @@ -5,8 +5,69 @@ transform="@program_transform_name@" prefix="@prefix@" exec_prefix="@exec_prefix@" bindir="@bindir@" +datarootdir="@datarootdir@" +datadir="@datadir@" -grub_mklayout=${bindir}/`echo grub-mklayout | sed ${transform}` +grub_mklayout="${bindir}/`echo grub-mklayout | sed ${transform}`" -ckbcomp "$@" | $grub_mklayout -o "$1".gkb +ckbcomp_options="" + +. "${datadir}/@PACKAGE@/grub-mkconfig_lib" + +self=`basename $0` + +usage () { + gettext_printf "Usage: %s -o OUTPUT CKBMAP_ARGUMENTS...\n" "$self" + gettext "Make GRUB layout file."; echo + echo + printf " -h, --help %s\n" "$(gettext "print this message and exit")" + printf " -v, --version %s\n" "$(gettext "print the version information and exit")" + printf " -o, --output=%-11s%s\n" "$(gettext FILE)" "$(gettext "save output in FILE [required]")" + echo + gettext_printf "%s generates a keyboard layout for GRUB using ckbcomp\n" "$self" + echo + gettext "Report bugs to ."; echo +} + +argument () { + opt=$1 + shift + + if test $# -eq 0; then + gettext_printf "%s: option requires an argument -- '%s'\n" "$0" "$opt" 1>&2 + exit 1 + fi + echo $1 +} + +output= + +while test $# -gt 0 +do + option=$1 + shift + case "$option" in + -h | --help) + usage + exit 0 ;; + -v | --version) + echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" + exit 0 ;; + -o | --output) + output=`argument $option "$@"`; shift ;; + --output=*) + output=`echo "$option" | sed 's/--output=//'` ;; + *) + ckbcomp_options="$ckbcomp_options $option";; + esac +done + +if [ "x${output}" = x ] ; then + gettext "output file must be given" >&2 + echo >&2 + usage + exit 1 +fi + +ckbcomp $ckbcomp_options | "$grub_mklayout" -o "${output}"