protected async Task <(Uri Server, IKey Key)> ReadAccountKey( ArgumentSyntax syntax, bool fallbackToSettings = false, bool required = false) { var serverUri = syntax.GetServerOption() ?? await UserSettings.GetDefaultServer(); var keyPath = syntax.GetKeyOption(); if (!string.IsNullOrWhiteSpace(keyPath)) { logger.Debug("Load account key form '{0}'.", keyPath); var pem = await File.ReadAllText(keyPath); return(serverUri, KeyFactory.FromPem(pem)); } var key = fallbackToSettings ? await UserSettings.GetAccountKey(serverUri) : null; if (required && key == null) { throw new CertesCliException( string.Format(Strings.ErrorNoAccountKey, serverUri)); } return(serverUri, key); }
public async Task <object> Execute(ArgumentSyntax syntax) { var serverUri = syntax.GetServerOption() ?? await userSettings.GetDefaultServer(); var ctx = contextFactory.Invoke(serverUri, null); logger.Debug("Loading directory from '{0}'", serverUri); var directory = await ctx.GetDirectory(); return(new { location = serverUri, resource = directory, }); }