view setup-gettext @ 3414:4149e5e36eb9

[gaim-migrate @ 3433] This is easier to maintain, cleaner, and you can take the script with you. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Tue, 20 Aug 2002 08:54:56 +0000
parents
children d7c90e6ecc23
line wrap: on
line source

#!/bin/sh

VERSION=0.1.0

parse_gettext_version() {
	GETTEXT_VERSION=`$GETTEXT_TOOL --version | sed -n 's/^.*\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\).*$/\1.\2.\3/p'`
	GETTEXT_MAJOR_VERSION=`echo $GETTEXT_VERSION | sed -n 's/^\([0-9]\+\).*/\1/p'`
	GETTEXT_MINOR_VERSION=`echo $GETTEXT_VERSION | sed -n 's/^[0-9]\+\.\([0-9]\+\).*/\1/p'`
	GETTEXT_MICRO_VERSION=`echo $GETTEXT_VERSION | sed -n 's/^[0-9]\+\.[0-9]\+\.\([0-9]\+\).*/\1/p'`
}

find_gettext() {
	GETTEXT_TOOL=autopoint
	
	(autopoint --version) < /dev/null > /dev/null 2>&1 || {
		GETTEXT_TOOL=gettextize

		(gettextize --version) < /dev/null > /dev/null 2>&1 || {
			GETTEXT_TOOL=
		}
	}
}

backup_m4() {
	[ -d m4 ] && mv m4 m4~
}

restore_m4() {
	[ -d m4~ ] && {
		rm -rf m4
		mv m4~ m4
	}
}

restore_files() {
	[ -e configure.in~ ] && mv -f configure.in~ configure.in
	[ -e configure.ac~ ] && mv -f configure.ac~ configure.ac
	[ -e Makefile.am~ ]  && mv -f Makefile.am~  Makefile.am
}

abort() {
	restore_files
	restore_m4

	exit 1
}

# Main code

find_gettext

# See if a version of gettext and its tools are installed.
if [ x$GETTEXT_TOOL == x ]; then
	echo
	echo "You do not have a version of gettext installed."
	echo "Please download one from your locak package repository or"
	echo "from ftp://ftp.gnu.org/pub/gnu/gettext/"
	echo
	exit 1
fi

parse_gettext_version

NUMVAR=$#

if [ $NUMVAR -gt 0 ]; then
	if [ $NUMVAR -gt 1 ]; then
		echo "Only one option at a time!"
		exit 1

	elif [ $1 == "--gettext-tool" ]; then
		echo $GETTEXT_TOOL
		exit 0

	elif [ $1 == "--help" ]; then
		echo "setup-gettext v$VERSION"
		echo "Usage:"
		echo "   --gettext-tool           Returns gettextize or autopoint, depending"
		echo "                            on the version of gettext installed."
		echo "   --gettext-version        Returns the version of gettext installed."
		echo "   --gettext-major-version  Returns the major version of gettext installed."
		echo "   --gettext-minor-version  Returns the minor version of gettext installed."
		echo "   --gettext-micro-version  Returns the micro version of gettext installed."
		echo "   --help                   Displays this help screen."
		echo
		exit 0

	elif [ $1 == "--version" ]; then
		echo $VERSION
		exit 0

	elif [ $1 == "--gettext-version" ]; then
		echo $GETTEXT_VERSION
		exit 0

	elif [ $1 == "--gettext-major-version" ]; then
		echo $GETTEXT_MAJOR_VERSION
		exit 0

	elif [ $1 == "--gettext-minor-version" ]; then
		echo $GETTEXT_MINOR_VERSION
		exit 0

	elif [ $1 == "--gettext-micro-version" ]; then
		echo $GETTEXT_MICRO_VERSION
		exit 0

	elif [ $1 == "--happy-url" ]; then
		echo http://gaim.sf.net/forkgettext.jpg
		exit 0

	else
		echo "Invalid option '$1'"
		exit 1
	fi
fi

# Okay, run the main stuff
if [ "$GETTEXT_TOOL" == "autopoint" ]; then
	backup_m4
	echo n | autopoint --force || abort
	restore_m4
else
	if [ $GETTEXT_MINOR_VERSION -eq 11 ]; then
		backup_m4

		# Gettext is pure evil. It DEMANDS that we press Return no matter
		# what. This gets rid of their happy "feature" of doom.
		sed 's:read .*< /dev/tty::' `which gettextize` > .temp-gettextize
		chmod +x .temp-gettextize
		echo n | ./.temp-gettextize --copy --force --intl --no-changelog || abort
		rm .temp-gettextize

		restore_files
		restore_m4

		[ -e po/Makevars.template ] && mv po/Makevars.template po/Makevars
	else
		echo n | gettextize --copy --force || exit;
	fi
fi