run method
override
Runs this command.
The return value is wrapped in a Future
if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
void run() async {
final credFile = Util.defaultCredentialsFile;
final hasCred =
!argResults!['overwrite-credentials'] && credFile.existsSync();
final httpClient = HttpClient();
final credentials = <String, dynamic>{};
ClientId oAuthClientId;
if (!hasCred) {
print('Enter clientId:');
credentials['identifier'] =
stdin.readLineSync(encoding: Util.defaultEncoding());
if (credentials['identifier'] == null) {
throw Exception('Client Identifier not supplied');
}
print('Enter clientSecret:');
credentials['secret'] =
stdin.readLineSync(encoding: Util.defaultEncoding());
oAuthClientId =
ClientId(credentials['identifier'], credentials['secret']);
credFile.createSync(recursive: true);
credFile.writeAsStringSync(json.encode(credentials));
} else {
oAuthClientId = Util.defaultClientId();
}
final accessControl = OAuthAccessControl(
clientId: oAuthClientId, httpClient: IOClient(httpClient));
await accessControl.init();
httpClient.close();
print('Authorization completed.');
}