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