#!/usr/bin/env bash # Copyright (C) 2016, Canonical Ltd. # All rights reserved. # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. An additional grant # of patent rights can be found in the PATENTS file in the same directory. args="" on_device=0 plugins_path="" asset_path="share" executor="" # Parse args for arg in "$@" do IFS="=" read -a parts <<< "$arg" if [[ $parts == "--on-device" ]]; then on_device=1 elif [[ $parts == "--plugins-path" ]]; then plugins_path=${parts[1]} args=$args" --plugins-path=./plugins" elif [[ $parts == "--asset-path" ]]; then asset_path=${parts[1]} elif [[ $parts == "--executor" ]]; then if [[ $on_device == 1 ]]; then # Force net executor for now executor="ReactNetExecutor" else executor=${parts[1]} fi args=$args" --executor=$executor" else args=$args" $parts" fi done # Handle defaults if [[ -z "$executor" ]]; then if [[ $on_device == 1 ]]; then executor="ReactNetExecutor" args=$args" --executor=ReactNetExecutor" fi # The RN application selects pipe executor by default fi # For net case, try and run executor; it is probably OK if this fails - it's # just running elsewhere if [[ "$executor" == "ReactNetExecutor" ]]; then (node @CMAKE_BINARY_DIR@/bin/ubuntu-server.js 2>&1 > /dev/null) & fi if [[ $on_device == 1 ]]; then app_path="/home/phablet/@APP_NAME@" # Push binaries adb push @CMAKE_BINARY_DIR@/bin/@APP_NAME@ "$app_path/@APP_NAME@" [ -d "$plugins_path" ] && adb push "$plugins_path" "$app_path/plugins/" [ -d "$asset_path" ] && adb push "$asset_path" "$app_path/share/" # adb reverse --no-rebind tcp:8081 tcp:808 # Run app on device react_host=`hostname -I` adb shell "cd $app_path && REACT_SERVER_HOST=$react_host ./@APP_NAME@ --host $react_host $args -- --desktop_file_hint=/usr/share/applications/webbrowser-app.desktop" else # Run app locally # Note: Needed to add QT_XCB_GL_INTEGRATION=none when migrating to Nix, since running the app in debug mode inside Nix shell was failing at run time with "qt.glx: qglx_findConfig: Failed to finding matching FBConfig (1 1 1 0)\nCould not initialize GLX" QT_XCB_GL_INTEGRATION=none @CMAKE_BINARY_DIR@/bin/@APP_NAME@ $args fi