run method
Runs this command.
The return value is wrapped in a Future
if necessary and returned by
CommandRunner.runCommand
.
Implementation
@override
void run() async {
final overwrite = argResults!['overwrite-credentials'];
final hasCred = overwrite && defaultCredentialsFile.existsSync();
final httpClient = HttpClient();
final credentials = <String, dynamic>{};
ClientId? oAuthClientId;
if (overwrite && accessCredentialsFile.existsSync()) {
accessCredentialsFile.deleteSync();
}
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']);
defaultCredentialsFile.createSync(recursive: true);
defaultCredentialsFile.writeAsStringSync(json.encode(credentials));
}
final accessControl = OAuthAccessControl(oAuthClientId);
await accessControl.init();
httpClient.close();
print('Authorization completed.');
}