public static async Task <int> Execute(OptimizeOptions options, IConsole console, InvocationContext context = null) { if (options == null) { console.Error.WriteLine("Invalid File TemplateRepositoryPath"); return(ReturnCodes.Error); } var settingsManager = new TinifySettingsManager(new FileSystemRoamingProfileAppEnvironment()); TinifySettings settings = settingsManager.LoadSettings(); try { console.Out.WriteLine("Validating Tinify API Key"); Tinify.Key = settings.Key; bool validKey = await Tinify.Validate().ConfigureAwait(false); if (!validKey) { console.Error.WriteLine("Invalid Tinify API Key"); return(ReturnCodes.Error); } long originalSizeInBytes = options.FilePath.Length; console.Out.WriteLine($"Original size: {originalSizeInBytes / 1024}KB"); Source source = await Tinify.FromFile(options.FilePath.FullName).ConfigureAwait(false); await source.ToFile(options.FilePath.FullName); long newSizeInBytes = new FileInfo(options.FilePath.FullName).Length; double percentChange = (newSizeInBytes - originalSizeInBytes) * 100.0 / originalSizeInBytes; console.Out.WriteLine($"New size: {newSizeInBytes / 1024}KB"); console.Out.WriteLine($"{percentChange:00}% Reduction"); } catch (Exception exception) { console.Error.WriteLine(exception.Message); return(ReturnCodes.Exception); } return(ReturnCodes.Ok); }
public static Task <int> Execute(IConsole console, InvocationContext context = null) { var settingsManager = new TinifySettingsManager(new FileSystemRoamingProfileAppEnvironment()); TinifySettings settings = settingsManager.LoadSettings(); if (settings != null) { console.Out.WriteLine($"Tinify Key: {settings.Key}"); } else { console.Out.WriteLine($"Tinify Value cannot be found. Please Run:"); console.Out.WriteLine($"vellum-cli tinify setting update <VALUE>"); } return(Task.FromResult(0)); }
public static Task <int> Execute(UpdateOptions options, IConsole console, InvocationContext context = null) { var settingsManager = new TinifySettingsManager(new FileSystemRoamingProfileAppEnvironment()); var settings = new TinifySettings { Key = options.Key, }; try { settingsManager.SaveSettings(settings); console.Out.WriteLine($"Settings updated."); } catch { console.Error.WriteLine($"Settings could not be updated."); } return(Task.FromResult(0)); }