mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-19 06:19:32 +00:00
Delete utils/change_textdomain (#7688)
Not sure if this is used anywhere... might break something Added by Octalot: it was a typo fix, but during the review Soliton and I decided it was better to just delete it. Reasoning: * Still expects configure.ac and Makefile.am * Only knows part of what to do for .lua files * Could have the entire overwrite function replaced by sed's --in-place option * Probably easier to just `git grep olddomain` than to update the script
This commit is contained in:
parent
4d911c1293
commit
4165f99b43
@ -1,201 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# change-textdomain -- hack the text domain of a specified campaign
|
||||
#
|
||||
# Code by Eric S. Raymond, May 2007.
|
||||
#
|
||||
# Ivanovic's original specification from FR #9039.
|
||||
#
|
||||
# would be nice to have a tool maybe named utils/textdomain2textdomain
|
||||
# that is able to change the textdomain of a given campaign. The params
|
||||
# that the script should support are these: campaignname,
|
||||
# oldtextdomain, newtextdomain
|
||||
#
|
||||
# * asumptions: campaign lies in data/campaigns, current textdomain
|
||||
# is wesnoth-oldtextdomain, the translation files are existing
|
||||
# (and maybe already uploaded) in the folder
|
||||
# /po/wesnoth-oldtextdomain/.
|
||||
#
|
||||
# Here is what is to be done for the campaign named 'foo' to move from
|
||||
# the textdomain wesnoth-oldtextdomain to wesnoth-newtextdomain:
|
||||
#
|
||||
# 1) search in all files in data/campaigns/foo* (yes, the .cfg file, too)
|
||||
# for this string:
|
||||
#
|
||||
# #textdomain wesnoth-oldtextdomain
|
||||
#
|
||||
# 2) replace (be aware, there might be " " around the part after name=)
|
||||
#
|
||||
# [textdomain]
|
||||
# name=wesnoth-oldtextdomain
|
||||
# [/textdomain]
|
||||
#
|
||||
# with
|
||||
#
|
||||
# [textdomain]
|
||||
# name=wesnoth-newtextdomain
|
||||
# [/textdomain]
|
||||
#
|
||||
# 3) move the folder po/wesnoth-oldtextdomain to
|
||||
# po/wesnoth-newtextdomain (git mv if the file is already under
|
||||
# version control, normal mv if it is not)
|
||||
#
|
||||
# 4) move the file (folders are already changed)
|
||||
# po/wesnoth-newtextdomain/wesnoth-oldtextdomain.pot to
|
||||
# po/wesnoth-newtextdomain/wensoth-newtextdomain.pot (via git mv if
|
||||
# files are under version control already, --force will be needed,
|
||||
# since it is a 2nd move)
|
||||
#
|
||||
# 5) replace wesnoth-oldtextdomain by wesnoth-newtextdomain in
|
||||
# po/wesnoth-newtextdomain/Makevars
|
||||
#
|
||||
# 6) replace wesnoth-oldtextdomain by wesnoth-newtextdomain in po/Makefile.am
|
||||
#
|
||||
# 7) replace wesnoth-oldtextdomain by wesnoth-newtextdomain in configure.ac
|
||||
#
|
||||
# Later, I added the -t option to insert a default textdomain in files that
|
||||
# don't have it.
|
||||
#
|
||||
# Note: This script is rather sensitive to the current directory layout --
|
||||
# the campaigns directory is required to be under data, po directly under
|
||||
# toplevel, etc. It will silently break if these assumptions stop being true.
|
||||
|
||||
usage()
|
||||
{
|
||||
cat <<EOF
|
||||
Usage: change_textdomain {-h | -t | campaign-name oldtextdomain newtextdomain}
|
||||
Options:
|
||||
-h, --help Emit this help message and quit.
|
||||
-d, --dryrun Echo shell actions without performing them.
|
||||
-t Insert "#textdomain wesnoth" in all cfg files
|
||||
without textdomain, no other params required.
|
||||
Requires as first argument a campaign name.
|
||||
Requires as second and third arguments old and new text domain names.
|
||||
|
||||
Call from the top-level directory of mainline.
|
||||
EOF
|
||||
}
|
||||
|
||||
die()
|
||||
{
|
||||
echo "change_textdomain: $1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
replace()
|
||||
# Replace a specified string with another in any number of files
|
||||
{
|
||||
left="$1"; right="$2"; shift; shift;
|
||||
|
||||
for file in $*
|
||||
do
|
||||
if grep "$left" $file >/dev/null 2>&1
|
||||
then
|
||||
overwrite $file sed "s@$left@$right@g" $file
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
overwrite()
|
||||
# Replace a file with itself filtered by a command
|
||||
{
|
||||
opath=$PATH
|
||||
PATH=/bin:/usr/bin
|
||||
|
||||
file=$1; shift
|
||||
new=/tmp/over$$; old=/tmp/under$$
|
||||
trap 'rm -f $new $old ; exit 1' 1 2 15
|
||||
|
||||
if PATH=$opath "$@" >$new
|
||||
then
|
||||
cp $file $old # save the old file
|
||||
trap '' 1 2 15 # We are committed; ignore signals
|
||||
cp $new $file
|
||||
else
|
||||
echo "overwrite: $1 failed, $file unchanged" 1 >&2
|
||||
exit 1
|
||||
fi
|
||||
rm -f $new $old
|
||||
}
|
||||
|
||||
repomove()
|
||||
# Move a file, whether under version control or not
|
||||
{
|
||||
if git mv $1 $2
|
||||
then
|
||||
:
|
||||
else
|
||||
mv $1 $2
|
||||
fi
|
||||
}
|
||||
|
||||
add_textdomain()
|
||||
# Add '#textdomain wesnoth' to files that don't have it.
|
||||
{
|
||||
for file in `find data -name "*.cfg" -print | grep -v 'data/languages\|lan_server.cfg'`
|
||||
do
|
||||
if grep '#textdomain' $file >/dev/null
|
||||
then
|
||||
:
|
||||
else
|
||||
${do} echo "#textdomain wesnoth" >/tmp/ctd$$.tmp
|
||||
${do} cat $file >>/tmp/ctd$$.tmp
|
||||
${do} cp /tmp/ctd$$.tmp $file
|
||||
fi
|
||||
done
|
||||
for file in `find data -name "*.lua" -print`
|
||||
do
|
||||
if grep '#textdomain' $file >/dev/null
|
||||
then
|
||||
:
|
||||
else
|
||||
${do} echo "--! #textdomain wesnoth" >/tmp/ctd$$.tmp
|
||||
${do} cat $file >>/tmp/ctd$$.tmp
|
||||
${do} cp /tmp/ctd$$.tmp $file
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
if [ "$1" = "-h" -o "$1" = "--help" ]
|
||||
then
|
||||
usage
|
||||
exit 1
|
||||
elif [ "$1" = "-d" -o "$1" = "--dryrun" ]
|
||||
then
|
||||
do=echo
|
||||
shift
|
||||
elif [ "$1" = "-t" ]
|
||||
then
|
||||
add_textdomain
|
||||
exit 0
|
||||
fi
|
||||
|
||||
campaign=$1
|
||||
oldtextdomain=$2
|
||||
newtextdomain=$3
|
||||
echo "campaign=$campaign, ols=$oldtextdomain, new=$newtextdomain"
|
||||
if [ "$campaign" = "" ]
|
||||
then
|
||||
usage
|
||||
die "a campaign name is required."
|
||||
elif [ "${oldtextdomain}" = "" ]
|
||||
then
|
||||
usage
|
||||
die "an old textdomain name is required."
|
||||
elif [ "${newtextdomain}" = "" ]
|
||||
then
|
||||
usage
|
||||
die "a new textdomain name is required."
|
||||
else
|
||||
# First, hack scenario and autoconf files
|
||||
${do} replace ${oldtextdomain} ${newtextdomain} \
|
||||
configure.ac \
|
||||
po/Makefile.am \
|
||||
po/${oldtextdomain}/Makevars \
|
||||
data/campaigns/${campaign}.cfg \
|
||||
`find data/campaigns/${campaign} -name "*.cfg" -print`
|
||||
|
||||
# Then do the .pot and folder moves
|
||||
${do} repomove po/${oldtextdomain}/${oldtextdomain}.pot po/${oldtextdomain}/${newtextdomain}.pot
|
||||
${do} repomove po/${oldtextdomain} po/${newtextdomain}
|
||||
fi
|
Loading…
x
Reference in New Issue
Block a user