コード例 #1
0
ファイル: Extensions.cs プロジェクト: nils-a/Cake.Npm.Module
        /// <summary>
        /// Checks the existence of a given key on <see cref="PackageReference"/> and supplies the value in <paramref name="value"/>.
        /// </summary>
        /// <param name="package">The <see cref="PackageReference"/> to check.</param>
        /// <param name="key">The key to search for.</param>
        /// <param name="value">The value of the key, if it was set. <c>string.empty</c> otherwise.</param>
        /// <returns><c>true</c> if the key was set.</returns>
        internal static bool HasValue(this PackageReference package, string key, out string value)
        {
            var hasValue = package.HasValue(key);

            value = package.GetValue(key) ?? string.Empty;
            return(hasValue);
        }
コード例 #2
0
ファイル: Extensions.cs プロジェクト: nils-a/Cake.Npm.Module
        private static string GetValue(this PackageReference package, string key, params char[] trimChars)
        {
            var hasValue = package.HasValue(key);

            if (!hasValue)
            {
                return(string.Empty);
            }

            var value = package.Parameters[key].FirstOrDefault();

            return(value != null && trimChars.Any()
                ? value.Trim(trimChars)
                : value);
        }
コード例 #3
0
        private ProcessArgumentBuilder GetArguments(
            PackageReference definition,
            ICakeConfiguration config)
        {
            var arguments = new ProcessArgumentBuilder();

            arguments.Append("install");

            if (_log.Verbosity == Verbosity.Verbose || _log.Verbosity == Verbosity.Diagnostic)
            {
                arguments.Append("--verbose");
            }

            if (definition.Address != null)
            {
                arguments.Append($"--registry \"{definition.Address}\"");
            }
            else
            {
                var npmSource = config.GetValue(Constants.ConfigKey);
                if (!string.IsNullOrWhiteSpace(npmSource))
                {
                    arguments.Append($"--registry \"{npmSource}\"");
                }
            }

            if (definition.GetSwitch("force"))
            {
                arguments.Append("--force");
            }

            if (definition.GetSwitch("global"))
            {
                arguments.Append("--global");
            }

            if (definition.GetSwitch("ignore-scripts"))
            {
                arguments.Append("--ignore-scripts");
            }

            if (definition.GetSwitch("no-optional"))
            {
                arguments.Append("--no-optional");
            }

            if (definition.GetSwitch("save"))
            {
                GetSaveArguments(arguments, definition);
            }

            var packageString = new StringBuilder();

            if (definition.HasValue("source", out string source))
            {
                packageString.Append(source.Trim(':') + ":");
            }

            if (definition.HasValue("scope", out string scope))
            {
                packageString.Append("@" + scope.Trim('@') + "/");
            }

            packageString.Append(definition.Package);

            if (definition.HasValue("version", out string version))
            {
                packageString.Append(("@" + version.Trim(':', '=', '@')).Quote());
            }

            arguments.Append(packageString.ToString());
            return(arguments);
        }