diff options
Diffstat (limited to 'tests/manual/x11vkbwrapper/vkbnativehost/install_host.sh')
-rwxr-xr-x | tests/manual/x11vkbwrapper/vkbnativehost/install_host.sh | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/manual/x11vkbwrapper/vkbnativehost/install_host.sh b/tests/manual/x11vkbwrapper/vkbnativehost/install_host.sh new file mode 100755 index 00000000..8eae33d1 --- /dev/null +++ b/tests/manual/x11vkbwrapper/vkbnativehost/install_host.sh @@ -0,0 +1,82 @@ +#!/bin/bash +#****************************************************************************** +#** +#** Copyright (C) 2019 The Qt Company Ltd. +#** Contact: https://www.qt.io/licensing/ +#** +#** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. +#** +#** $QT_BEGIN_LICENSE:GPL$ +#** Commercial License Usage +#** Licensees holding valid commercial Qt licenses may use this file in +#** accordance with the commercial license agreement provided with the +#** Software or, alternatively, in accordance with the terms contained in +#** a written agreement between you and The Qt Company. For licensing terms +#** and conditions see https://www.qt.io/terms-conditions. For further +#** information use the contact form at https://www.qt.io/contact-us. +#** +#** GNU General Public License Usage +#** Alternatively, this file may be used under the terms of the GNU +#** General Public License version 3 or (at your option) any later version +#** approved by the KDE Free Qt Foundation. The licenses are as published by +#** the Free Software Foundation and appearing in the file LICENSE.GPL3 +#** included in the packaging of this file. Please review the following +#** information to ensure the GNU General Public License requirements will +#** be met: https://www.gnu.org/licenses/gpl-3.0.html. +#** +#** $QT_END_LICENSE$ +#** +#****************************************************************************/ + +set -e +BROWSER=$1 +HOST_PATH=$2 +HOST_APP_NAME=x11vkbnativehost +HOST_JSON_NAME=x11vkb.host.json + +function echo_error_and_exit { + echo $1 + echo "Use case: ./install_host.sh chromium [or chrome] /full/path/to/executable" + exit 1 +} + +if [ "$BROWSER" != "chromium" ] && [ "$BROWSER" != "chrome" ]; then + echo_error_and_exit "use chromium or chrome as the first parameter" +fi + +if [ ! -f "$HOST_PATH/$HOST_APP_NAME" ]; then + if [ ! -f "$HOST_PATH" ]; then + echo_error_and_exit "executable at path $HOST_PATH not found" + else + if [ $HOST_APP_NAME == "${HOST_PATH##*/}" ]; then + HOST_PATH=$(echo $HOST_PATH | rev | cut -d'/' -f2- | rev) + else + echo_error_and_exit "executable at path $HOST_PATH/$HOST_APP_NAME not found" + fi + fi +fi +HOST_PATH=$(echo $HOST_PATH | sed 's:/*$::') + +DIR=$PWD + +if [ $BROWSER == "chromium" ]; then + TARGET_DIR="$HOME/.config/chromium/NativeMessagingHosts" +else + TARGET_DIR="$HOME/.config/google-chrome/NativeMessagingHosts" +fi + +# Create directory to store native messaging host. +mkdir -p "$TARGET_DIR" + +# Copy native messaging host manifest. +cp "$DIR/$HOST_JSON_NAME" "$TARGET_DIR" + +# Update host path in the manifest. +ESCAPED_HOST_PATH=${HOST_PATH////\\/} + +sed -i -e "s/HOST_PATH/$ESCAPED_HOST_PATH/" "$TARGET_DIR/$HOST_JSON_NAME" + +# Set permissions for the manifest so that all users can read it. +chmod o+r "$TARGET_DIR/$HOST_JSON_NAME" + +echo $HOST_JSON_NAME has been installed. |