blob: 07ffacc919c0df44c5861a58a8623241af087f28 [file] [log] [blame]
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:async';
import 'dart:io';
import '../command.dart';
import '../utils.dart';
/// Handles the `uploader` pub command.
class UploaderCommand extends PubCommand {
@override
String get name => 'uploader';
@override
String get description => 'Manage uploaders for a package on pub.dev.';
@override
String get argumentsDescription => '[options] {add/remove} <email>';
@override
String get docUrl => 'https://dart.dev/tools/pub/cmd/pub-uploader';
@override
bool get hidden => true;
/// The URL of the package hosting server.
Uri get server => Uri.parse(argResults['server']);
UploaderCommand() {
argParser.addOption('server',
defaultsTo: Platform.environment['PUB_HOSTED_URL'] ??
'https://pub.dartlang.org',
help: 'The package server on which the package is hosted.\n',
hide: true);
argParser.addOption('package',
help: 'The package whose uploaders will be modified.\n'
'(defaults to the current package)');
argParser.addOption('directory',
abbr: 'C', help: 'Run this in the directory<dir>.', valueHelp: 'dir');
}
@override
Future<void> runProtected() async {
String packageName = '<packageName>';
try {
packageName = entrypoint.root.name;
} on Exception catch (_) {
// Probably run without a pubspec.
// Just print error below without a specific package name.
}
fail('''
Package uploaders are no longer managed from the command line.
Manage uploaders from:
https://pub.dev/packages/$packageName/admin
''');
}
}