anchor.diff:  
   pushd \$PKG
   pub upgrade
  -$pkgCase
  -case \$TASK in
  -${tasks.join('\n')}
  -esac
  -''';
  +${_shellCase('PKG', pkgEntries)}${_shellCase('TASK', tasks)}''';
   
   String _travisYml(
           Iterable<String> sdks, Iterable<String> envs, String matrix) =>
  
positive.code:     stderr.writeln(yellow.wrap('  chmod +x $travisShPath'));
    }
  
    var packageCase = pkgEntries.isEmpty
        ? ''
        : '''
  
  case \$PKG in
  ${pkgEntries.join('\n')}
  esac
  ''';
  
    travisScript
        .writeAsStringSync(_travisSh(taskEntries, packageCase, prettyAnsi));
    // TODO: be clever w/ `travisScript.statSync().mode` to see if it's executable
    stderr.writeln(styleDim.wrap('Wrote `$travisFilePath`.'));
  }
  
negative.code: String _indentAndJoin(Iterable<String> items) =>
      items.map((i) => '  - $i').join('\n');
  
  String _shellCase(String scriptVariable, List<String> entries) {
    if (entries.isEmpty) return '';
    return '''
  
  case \$$scriptVariable in
  ${entries.join('\n')}
  esac
  ''';
  }
  
  String _travisSh(
          List<String> tasks, List<String> pkgEntries, bool prettyAnsi) =>
      '''
  #!/bin/bash
  # Created with https://github.com/dart-lang/mono_repo
  
  