12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#!/bin/sh
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# found in the LICENSE file.
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)set -e -u
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ME="$(basename "$0")"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)readonly ME
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)KSADMIN=/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)KSPID=com.google.chrome_remote_desktop
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)usage() {
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  echo "Usage: ${ME} <channel>" >&2
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  echo "where <channel> is 'beta' or 'stable'" >&2
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)log() {
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  local message="$1"
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  echo "${message}"
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  logger "${message}"
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)checkroot() {
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if [[ "$(id -u)" != "0" ]]; then
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     echo "This script requires root permissions" 1>&2
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     exit 1
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  fi
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)main() {
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  local channel="$1"
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if [[ "${channel}" != "beta" && "${channel}" != "stable" ]]; then
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    usage
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    exit 1
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  fi
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  local channeltag="${channel}"
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if [[ "${channel}" == "stable" ]]; then
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    channeltag=""
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  fi
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  log "Switching Chrome Remote Desktop channel to ${channel}"
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  $KSADMIN --productid "$KSPID" --tag "${channeltag}"
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if [[ "${channel}" == "stable" ]]; then
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    echo "You're not done yet!"
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    echo "You must now UNINSTALL and RE-INSTALL the latest version of Chrome"
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    echo "Remote Desktop to get your machine back on the stable channel."
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    echo "Thank you!"
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  else
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    echo "Switch to ${channel} channel complete."
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    echo "You will download ${channel} binaries during the next update check."
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  fi
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)checkroot
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)if [[ $# < 1 ]]; then
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  usage
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  exit 1
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)fi
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)main "$@"
69