Alex Perry | fe4b826 | 2019-03-20 19:49:46 -0700 | [diff] [blame] | 1 | #!/bin/bash |
Austin Schuh | 0739a0c | 2019-03-03 17:16:46 -0800 | [diff] [blame] | 2 | set -e |
| 3 | |
Alex Perry | fe4b826 | 2019-03-20 19:49:46 -0700 | [diff] [blame] | 4 | BRANCH=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD) |
| 5 | if [[ "$BRANCH" != "master" ]]; then |
| 6 | read -p "Not on master, deploy anyway (y/n) " ANSWER |
| 7 | if [[ $ANSWER =~ ^[Yy]$ ]]; then |
| 8 | echo "Master check overridden, deploying anyway" |
| 9 | else |
| 10 | echo "Cancelling deploy" |
| 11 | exit 1 |
| 12 | fi |
| 13 | else |
| 14 | echo "On master, deploying" |
| 15 | fi |
| 16 | |
Alex Perry | 3a69673 | 2019-03-02 22:30:31 -0800 | [diff] [blame] | 17 | echo "Building executables" |
| 18 | readonly BAZEL_OPTIONS="-c opt --cpu=armhf-debian" |
| 19 | readonly BAZEL_BIN="$(bazel info ${BAZEL_OPTIONS} bazel-bin)" |
Austin Schuh | 3a043cd | 2019-03-03 16:42:22 -0800 | [diff] [blame] | 20 | readonly TARGET_DIR=/media/$USER/JEVOIS |
Alex Perry | 3a69673 | 2019-03-02 22:30:31 -0800 | [diff] [blame] | 21 | |
| 22 | bazel build ${BAZEL_OPTIONS} \ |
| 23 | //y2019/vision:target_sender \ |
| 24 | //y2019/vision:serial_waiter |
| 25 | |
Austin Schuh | e06d604 | 2019-03-23 16:33:00 -0700 | [diff] [blame] | 26 | JEVOIS_DEV="/dev/null" |
| 27 | for dev in /dev/ttyACM*; do |
| 28 | if udevadm info -a -n "${dev}" | grep "JeVois-A33 Smart Camera" -q; |
| 29 | then |
| 30 | JEVOIS_DEV="${dev}" |
| 31 | fi |
| 32 | done |
| 33 | |
| 34 | if [[ "${JEVOIS_DEV}" == "/dev/null" ]]; |
| 35 | then |
| 36 | echo "Can't find jevois" |
| 37 | exit 1; |
| 38 | fi; |
| 39 | |
| 40 | if ! mount | grep "${TARGET_DIR}" -q |
Ben Fredrickson | a8c3d55 | 2019-03-03 14:14:53 -0800 | [diff] [blame] | 41 | then |
Austin Schuh | 3a043cd | 2019-03-03 16:42:22 -0800 | [diff] [blame] | 42 | echo "Mount jevois at ${TARGET_DIR} ..." |
Austin Schuh | e06d604 | 2019-03-23 16:33:00 -0700 | [diff] [blame] | 43 | ./jevois-cmd -d "${JEVOIS_DEV}" usbsd |
| 44 | fi |
| 45 | |
| 46 | sleep 5 |
| 47 | |
Brian Silverman | 71fe3c8 | 2019-03-23 22:12:58 -0700 | [diff] [blame^] | 48 | JEVOIS_SD= |
| 49 | for SD in /dev/sd[a-z]; do |
| 50 | if udevadm info -a -n "${SD}" | grep JeVois -q; then |
| 51 | echo "Jevois at ${SD}" |
| 52 | JEVOIS_SD="${SD}" |
| 53 | break |
| 54 | fi |
| 55 | done |
| 56 | if [[ -z ${JEVOIS_SD} ]]; then |
| 57 | echo "Failed to find Jevois. Stopping now" |
| 58 | exit 1 |
Austin Schuh | e06d604 | 2019-03-23 16:33:00 -0700 | [diff] [blame] | 59 | fi |
| 60 | |
| 61 | if ! mount | grep "${TARGET_DIR}" -q |
| 62 | then |
| 63 | sudo mkdir -p "${TARGET_DIR}" |
| 64 | |
Brian Silverman | 71fe3c8 | 2019-03-23 22:12:58 -0700 | [diff] [blame^] | 65 | sudo mount "${JEVOIS_SD}" "${TARGET_DIR}" |
Ben Fredrickson | a8c3d55 | 2019-03-03 14:14:53 -0800 | [diff] [blame] | 66 | fi |
Parker Schuh | 46b4881 | 2019-02-22 20:45:36 -0800 | [diff] [blame] | 67 | |
| 68 | echo "Waiting for fs ..." |
Austin Schuh | 3a043cd | 2019-03-03 16:42:22 -0800 | [diff] [blame] | 69 | while [ ! -d "${TARGET_DIR}" ] |
Parker Schuh | 46b4881 | 2019-02-22 20:45:36 -0800 | [diff] [blame] | 70 | do |
| 71 | sleep 1 |
| 72 | done |
| 73 | echo "OK" |
| 74 | |
| 75 | echo "Copying files ..." |
Austin Schuh | aa4500e | 2019-03-23 18:07:04 -0700 | [diff] [blame] | 76 | sudo cp ./austin_cam.sh "${TARGET_DIR}"/ |
| 77 | sudo cp ./launch.sh "${TARGET_DIR}"/deploy/ |
Alex Perry | 3a69673 | 2019-03-02 22:30:31 -0800 | [diff] [blame] | 78 | |
Austin Schuh | a6b5097 | 2019-03-23 18:38:27 -0700 | [diff] [blame] | 79 | (echo "git log"; git log -1; echo "git status"; git status) > /tmp/jevois_deploy_version |
| 80 | |
| 81 | sudo cp /tmp/jevois_deploy_version "${TARGET_DIR}"/version |
| 82 | |
Austin Schuh | aa4500e | 2019-03-23 18:07:04 -0700 | [diff] [blame] | 83 | sudo cp "${BAZEL_BIN}/y2019/vision/target_sender" \ |
Alex Perry | 3a69673 | 2019-03-02 22:30:31 -0800 | [diff] [blame] | 84 | "${BAZEL_BIN}/y2019/vision/serial_waiter" \ |
Austin Schuh | 3a043cd | 2019-03-03 16:42:22 -0800 | [diff] [blame] | 85 | "${TARGET_DIR}"/deploy/ |
Parker Schuh | 46b4881 | 2019-02-22 20:45:36 -0800 | [diff] [blame] | 86 | |
| 87 | echo "Unmount sd card ..." |
Austin Schuh | e06d604 | 2019-03-23 16:33:00 -0700 | [diff] [blame] | 88 | sudo umount "${TARGET_DIR}" |
Parker Schuh | 46b4881 | 2019-02-22 20:45:36 -0800 | [diff] [blame] | 89 | echo "OK" |
| 90 | |
| 91 | echo "Rebooting Jevois." |
Austin Schuh | e06d604 | 2019-03-23 16:33:00 -0700 | [diff] [blame] | 92 | ./jevois-cmd -d "${JEVOIS_DEV}" restart |