8
TARGET_IP=${TARGET_IP-127.0.0.1}
9
TARGET_SSH_PORT=${TARGET_SSH_PORT-2222}
10
TARGET_DEBUG_PORT=3768
11
RUN_OPTIONS=-qmljsdebugger=port:$TARGET_DEBUG_PORT
14
SUDO="echo $PASSWORD | sudo -S"
15
NUM_JOBS='$(( `grep -c ^processor /proc/cpuinfo` + 1 ))'
18
echo "usage: run_on_device [OPTIONS]\n"
19
echo "Script to setup a build environment for the shell and sync build and run it on the device\n"
21
echo " -s, --setup Setup the build environment"
24
echo " * Make sure to have the networking and PPAs setup on the device beforehand (phablet-deploy-networking && phablet-ppa-fetch)."
25
echo " * Execute that script from a directory containing a branch the shell code."
30
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -t $USER@$TARGET_IP -p $TARGET_SSH_PORT "bash -ic \"$@\""
34
adb shell chroot /data/ubuntu /usr/bin/env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin "$@"
42
ssh-keygen -R $TARGET_IP
43
HOME_DIR=/data/ubuntu/home/phablet
44
adb push ~/.ssh/id_rsa.pub $HOME_DIR/.ssh/authorized_keys
45
adb shell chown $USER_ID:$USER_ID $HOME_DIR/.ssh
46
adb shell chown $USER_ID:$USER_ID $HOME_DIR/.ssh/authorized_keys
47
adb shell chmod 700 $HOME_DIR/.ssh
48
adb shell chmod 600 $HOME_DIR/.ssh/authorized_keys
51
setup_adb_forwarding() {
52
adb forward tcp:$TARGET_SSH_PORT tcp:22
53
adb forward tcp:$TARGET_DEBUG_PORT tcp:$TARGET_DEBUG_PORT
56
install_dependencies() {
57
exec_with_adb apt-get -y install openssh-server
58
exec_with_ssh $SUDO apt-get -y install build-essential rsync bzr ccache gdb ninja-build
59
exec_with_ssh $SUDO add-apt-repository -y ppa:canonical-qt5-edgers/qt5-proper
60
exec_with_ssh $SUDO add-apt-repository -s -y ppa:phablet-team/ppa
61
exec_with_ssh $SUDO apt-get update
62
exec_with_ssh $SUDO apt-get -y build-dep $PACKAGE
66
bzr export --uncommitted --format=dir /tmp/$CODE_DIR
67
rsync -crlOzv -e "ssh -p $TARGET_SSH_PORT -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" /tmp/$CODE_DIR/ $USER@$TARGET_IP:$CODE_DIR/
72
exec_with_ssh PATH=/usr/lib/ccache:$PATH "cd $CODE_DIR/ && PATH=/usr/lib/ccache:$PATH ./build"
76
SERVICEFILE="/data/ubuntu/etc/device-services"
77
adb shell "grep $BINARY $SERVICEFILE"
79
if [ $CONTAINS_SHELL -eq 0 ]; then
80
echo "Modifying $SERVICEFILE on device. Old contents will be saved in $SERVICEFILE.backup"
81
adb shell cp $SERVICEFILE $SERVICEFILE.backup
82
adb shell sed -i /$BINARY/d $SERVICEFILE
83
adb shell "chroot /data/ubuntu /usr/bin/service ubuntu-session restart"
85
adb shell pkill $BINARY
87
exec_with_ssh "cd $CODE_DIR/ && ./run --gdb --nomousetouch -- $RUN_OPTIONS"
89
exec_with_ssh "cd $CODE_DIR && ./run --nomousetouch -- $RUN_OPTIONS"
91
if [ $CONTAINS_SHELL -eq 0 ]; then
92
echo "Restoring $SERVICEFILE on device from $SERVICEFILE.backup"
93
adb shell cp $SERVICEFILE.backup $SERVICEFILE
94
adb shell "chroot /data/ubuntu /usr/bin/service ubuntu-session restart"
98
set -- `getopt -n$0 -u -a --longoptions="setup,gdb,help" "sgh" "$@"`
100
# FIXME: giving incorrect arguments does not call usage and exit
104
-s|--setup) SETUP=true;;
114
[ "${TARGET_IP}" = "127.0.0.1" ] && setup_adb_forwarding
117
echo "Setting up environment for building shell.."
122
echo "Transferring code.."