#!/bin/bash set -e -o pipefail # This script copies a locally built GOROOT to a remote device. # # Usage: push_goroot <target>... # # This script can work with both ChromeOS/Android devices. # # It uses "target_tmpdir" to figure out where to copy GOROOT on the device. # It uses "target_sh" to remotely execute commands on the device. # It uses "target_cp" to transfer files to the device. goroot="$(target_tmpdir)/go" for target in "$@" do echo -n "pushing to ${target} ... " target_sh ${target} "rm -rf ${goroot}" target_sh ${target} "mkdir -p ${goroot}/pkg" pkgdir="$(go_${target} env GOOS)_$(go_${target} env GOARCH)" if [[ -d "pkg/${pkgdir}_shared" ]] then target_cp "pkg/${pkgdir}_shared" ${target}:${goroot}/pkg target_sh ${target} "ln -s ${pkgdir}_shared ${goroot}/pkg/${pkgdir}" else target_cp "pkg/${pkgdir}" ${target}:${goroot}/pkg fi target_cp "src" ${target}:${goroot} target_cp "lib" ${target}:${goroot} target_cp "test" ${target}:${goroot} echo "done" done