spiegel-keyman/mac/local-deploy.sh
Shawn Schantz 63f1790662 feat(mac): remove old config UI
now that the Keyman Configuration app is available
to install and manage keyboard packages, delete
the old configuration interface accessed through
the Keyman menu on the input method
2026-09-15 14:29:05 -04:00

86 lines
No EOL
2.4 KiB
Bash
Executable file

#!/usr/bin/env bash
# does not produce an input method and config app that can communicate
# when built locally -- to access app group settings, each app must
# be signed with 'Developer ID Application' certificate
# Please note that this build script (understandably) assumes that it is running on Mac OS X.
if [[ "${OSTYPE}" != "darwin"* ]]; then
echo "This build script will only run in a Mac environment."
exit 1
fi
IMLIBRARY_PATH="$HOME/Library/Input Methods"
APPS_PATH="/Applications"
display_usage() {
echo "Use local-deploy.sh to deploy the Keyman Input Method app to $IMLIBRARY_PATH"
echo "and the Keyman Configuration app to $APPS_PATH"
echo "This kills the existing (running) process if needed. Typically called from"
echo "the Keyman mac build script."
echo
echo "usage: local-deploy.sh keymanInputMethodPath keymanConfigAppPath"
echo
echo "where keymanInputMethodPath is the path to a folder containing the"
echo "Keyman Input Method app and keymanConfigAppPath is the path to the"
echo "folder containing the Keyman Configuration app."
exit 1
}
if [ "$#" -ne 2 ]; then
display_usage
fi
KMIM_APPNAME="Keyman.app"
KM4MIM_APP_PATH="$1/$KMIM_APPNAME"
# verify that input method exists at path
if ! [[ -d "$KM4MIM_APP_PATH" ]]; then
echo "input method does not exist at path $KM4MIM_APP_PATH"
display_usage
fi
KM_CONFIG_APPNAME="Keyman Configuration.app"
KM_CONFIG_APP_PATH="$2/$KM_CONFIG_APPNAME"
# verify that the config app exists at path
if ! [[ -d "$KM_CONFIG_APP_PATH" ]]; then
echo "config app does not exist at path $KM_CONFIG_APP_PATH"
display_usage
fi
# kill both apps
pid=$(pgrep Keyman)
if [[ -n $pid ]]; then
kill $pid
fi
pid=$(pgrep 'Keyman Configuration')
if [[ -n $pid ]]; then
kill $pid
fi
# remove existing input method and install new one
KM4MIM_INSTALL_PATH="$IMLIBRARY_PATH/$KMIM_APPNAME"
if [[ -d "$KM4MIM_INSTALL_PATH" ]]; then
rm -Rf "$KM4MIM_INSTALL_PATH"
fi
echo "Copying $KM4MIM_APP_PATH to $IMLIBRARY_PATH..."
/bin/cp -R "$KM4MIM_APP_PATH" "$IMLIBRARY_PATH"
# remove existing configuration app and install new one
KMCONFIG_INSTALL_PATH="$APPS_PATH/$KM_CONFIG_APPNAME"
if [[ -d "$KMCONFIG_INSTALL_PATH" ]]; then
rm -Rf "$KMCONFIG_INSTALL_PATH"
fi
echo "Copying $KM_CONFIG_APP_PATH to $APPS_PATH..."
/bin/cp -R "$KM_CONFIG_APP_PATH" "$APPS_PATH"
# exit successfully if Keyman is installed
if [[ -d "$KM4MIM_INSTALL_PATH" ]]; then
exit 0
fi
exit 1