anchor.diff:    final options = parser.parse(args);
     final revision = options['revision'];
     final channel = options['channel'];
  -  final key = options['key'];
  -  if ([revision, channel, key].contains(null)) {
  -    print("Usage: update_homebrew.dart -r revision -c channel -k ssh_key\n"
  +  if ([revision, channel].contains(null)) {
  +    print("Usage: update_homebrew.dart -r revision -c channel [-k ssh_key]\n"
           "  ssh_key should allow pushes to ${GITHUB_REPO} on github");
       return;
     }
  -  final sshWrapper = Platform.script.resolve('ssh_with_key').toFilePath();
  -  gitEnvironment = {'GIT_SSH': sshWrapper, 'SSH_KEY_PATH': key};
  +
  +  final key = options['key'];
  +  if (key != null) {
  +    final sshWrapper = Platform.script.resolve('ssh_with_key').toFilePath();
  +    gitEnvironment = {'GIT_SSH': sshWrapper, 'SSH_KEY_PATH': key};
  +  }
   
     Chain.capture(() async {
       var tempDir = await Directory.systemTemp.createTemp('update_homebrew');
  
positive.code:   end
  
    def caveats; <<-EOS.undent
       To use with IntelliJ, set the Dartium execute home to:
          #{prefix}/Chromium.app
      EOS
    end
  
negative.code:       url '$urlBase/dev/release/${revisions['dev']}/$ia32File'
        sha256 '${hashes['dev'][ia32File]}'
      end
  
      resource 'content_shell' do
        url '$urlBase/dev/release/${revisions['dev']}/$contentShellFile'
        sha256 '${hashes['dev'][contentShellFile]}'
      end
  
      resource 'dartium' do
        url '$urlBase/dev/release/${revisions['dev']}/$dartiumFile'
        sha256 '${hashes['dev'][dartiumFile]}'
      end
    end
  
    resource 'content_shell' do
      url '$urlBase/stable/release/${revisions['stable']}/$contentShellFile'
      sha256 '${hashes['stable'][contentShellFile]}'
    end
  
    resource 'dartium' do
      url '$urlBase/stable/release/${revisions['stable']}/$dartiumFile'
      sha256 '${hashes['stable'][dartiumFile]}'
    end
  
    def install
      libexec.install Dir['*']
      bin.install_symlink "#{libexec}/bin/dart"
      bin.write_exec_script Dir["#{libexec}/bin/{pub,docgen,dart?*}"]
  
      if build.with? 'content-shell'
        dartium_binary = 'Chromium.app/Contents/MacOS/Chromium'
        prefix.install resource('dartium')
        (bin+"dartium").write shim_script dartium_binary
      end
  
      if build.with? 'content-shell'
        content_shell_binary = 'Content Shell.app/Contents/MacOS/Content Shell'
        prefix.install resource('content_shell')
        (bin+"content_shell").write shim_script content_shell_binary
      end
    end
  
    def shim_script target
      <<-EOS.undent
        #!/bin/bash
        exec "#{prefix}/#{target}" "\$@"
      EOS
    end
  
    def caveats; <<-EOS.undent
      Please note the path to the Dart SDK:
        #{opt_libexec}
  
      --with-dartium:
        To use with IntelliJ, set the Dartium execute home to:
          #{prefix}/Chromium.app
      EOS
    end
  
  