adium/adium

file isExecutable
Add a short delay to the contentAdded event, to ensure it's run after the content has been appended.
#!/bin/sh
###############
#
# Usage: update_adium_from_bundle SOURCE_BUNDLE_PATH LANGUAGE_NAME REPO_LOCATION
# for example:
# ~/bin/update_adium_from_bundle Desktop/Adium_French.app French ~/adium
#
# This script does not cover new localizations initially; they must first be added via Xcode
################
SOURCE=$1
REPO=$3
########
# Functions
########
# Copy all nibs and other files in the current directory to a given destination
# Removes other copies of present in the target location first
loc_copy()
{
for file in * ; do
if [ "${file##*.}" = "nib" ] ; then
ToNAME=`echo "$file" | sed 's/.nib$/.xib/g'`
ToPATH=$1
if [ "$file" = "AITwitterAccountView.nib" ] ; then
ToPATH="$REPO/Plugins/Twitter Plugin/Resources/$DEST_LANG"
elif [ "$file" = "WebKitPreferencesView.nib" ] ; then
ToPATH="$REPO/Plugins/WebKit Message View/Resources/$DEST_LANG"
fi
ibtool --export-strings-file "$file.str" "$file"
ibtool --import-strings-file "$file.str" "$ToPATH/$ToNAME" --write "$ToPATH/$ToNAME"
rm "$file.str"
else
rm -rf "$1/$file" || true
cp -R "$file" "$1"
fi
done
}
silent_pushd()
{
pushd "$1" >/dev/null
}
silent_popd()
{
popd >/dev/null
}
#####
# Begin!
#####
update_language()
{
#first parameter to update_language is the language
LANG=$1.lproj
DEST_LANG=$LANG
echo "+++++ Updating $LANG"
silent_pushd "$SOURCE/Contents"
silent_pushd "Resources"
# Main resources
if [ -e "$LANG" ] ; then
silent_pushd $LANG
loc_copy "$REPO/Resources/$DEST_LANG"
silent_popd
fi
# Emoticons
if [ -e "Emoticons" ] ; then
echo "Emoticons"
silent_pushd Emoticons
silent_pushd Default.AdiumEmoticonset
if [ -e "Resources/$LANG" ] ; then
silent_pushd Resources/$LANG
cp InfoPlist.strings "$REPO/Resources/Emoticons/Default.AdiumEmoticonSet/Resources/$DEST_LANG"
silent_popd
fi
silent_popd
silent_popd
else
echo "No Emoticons found for $LANG"
fi
# Scripts
if [ -e "Scripts" ] ; then
echo "Scripts"
silent_pushd Scripts
silent_pushd "System Statistics.AdiumScripts"
if [ -e "Resources/$LANG" ] ; then
silent_pushd Resources/$LANG
cp InfoPlist.strings "$REPO/Resources/Scripts/System Statistics.AdiumScripts/Resources/$DEST_LANG"
silent_popd
fi
silent_popd
silent_popd
else
echo "No Scripts found for $LANG"
fi
silent_popd
#back to Contents
silent_pushd Frameworks
echo "Adium Framework"
if [ -e "Adium.framework/Versions/A/Resources/$LANG" ] ; then
silent_pushd Adium.framework/Versions/A/Resources/$LANG
loc_copy "$REPO/Frameworks/Adium Framework/Resources/$DEST_LANG"
silent_popd
fi
echo "AIUtilities.framework"
if [ -e "AIUtilities.framework/Versions/A/Resources/$LANG" ] ; then
silent_pushd AIUtilities.framework/Versions/A/Resources/$LANG
loc_copy "$REPO/Frameworks/AIUtilities Framework/Resources/$DEST_LANG"
silent_popd
fi
echo "AdiumLibpurple.framework"
if [ -e "AdiumLibpurple.framework/Versions/A/Resources/$LANG" ] ; then
silent_pushd AdiumLibpurple.framework/Versions/A/Resources/$LANG
loc_copy "$REPO/Plugins/Purple Service/Resources/$DEST_LANG"
silent_popd
fi
silent_popd
#back to Contents
if [ -e "Library/Spotlight" ] ; then
silent_pushd Library/Spotlight
if [ -e "AdiumSpotlightImporter.mdimporter/Contents/Resources/$LANG" ] ; then
silent_pushd AdiumSpotlightImporter.mdimporter/Contents/Resources/$LANG
loc_copy "$REPO/Other/Adium Spotlight Importer/$DEST_LANG"
silent_popd
fi
silent_popd
fi
}
if [ "$SOURCE" = "" -o ! -d "$SOURCE" -o "$REPO" = "" -o ! -d "$REPO" ] ; then
echo 'Usage: '$0' SOURCE_BUNDLE_PATH LANGUAGE_NAME REPO_LOCATION'
echo 'e.g. '$0' ~/Desktop/Adium.app/ de ~/adium/'
exit 0
fi
if [ "$2" = "all" ] ; then
# fr_CA not included
for lang in \
ca \
cs \
da \
de \
en_AU \
en_CA \
es \
fi \
fr \
is \
it \
ja \
nb \
nl \
pl \
pt_BR \
ru \
sk_SK \
sv \
tr \
zh_CN \
zh_TW \
; do
update_language $lang
done
else
update_language $2
fi