コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
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));
        }