| #!/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 |