コード例 #1
0
        public static void CakeInstallPackage(
            this ICakeContext context,
            Action <CakeInstallPackageSettings> settings)
        {
            var installSettings = new CakeInstallPackageSettings
            {
                NuGetDirectory = context.Directory("./nuget"),
                ToolsDirectory = context.Directory("./tools")
            };

            settings(installSettings);
            context.CakeInstallPackage(installSettings);
        }
コード例 #2
0
        public static void CakeInstallPackage(
            this ICakeContext context,
            CakeInstallPackageSettings settings)
        {
            if (string.IsNullOrEmpty(settings.Id))
            {
                throw new ArgumentNullException("Id is empty");
            }

            if (string.IsNullOrEmpty(settings.Version))
            {
                throw new ArgumentNullException("Version is empty");
            }

            if (settings.NuGetDirectory?.FullPath is null ||
                string.IsNullOrEmpty(settings.NuGetDirectory.FullPath))
            {
                throw new ArgumentNullException("NuGet package path is empty");
            }

            if (settings.ToolsDirectory?.FullPath is null ||
                string.IsNullOrEmpty(settings.ToolsDirectory.FullPath))
            {
                throw new ArgumentNullException("Tools directory path is empty");
            }

            if (!settings.AsAddin && !settings.AsTool)
            {
                throw new ArgumentException("Not installing as addin or tool, call is redundent");
            }

            var nugetPackage = context.File(
                $"{settings.NuGetDirectory}/{settings.Id}.{settings.Version}.nupkg");

            if (settings.AsAddin)
            {
                var addinsDirectory = context.Directory(
                    $"{settings.ToolsDirectory.FullPath}/Addins/{settings.Id}.{settings.Version}");

                CakeInstallPackage(context, addinsDirectory, nugetPackage);
            }

            if (settings.AsTool)
            {
                var toolsDirectory = context.Directory(
                    $"{settings.ToolsDirectory.FullPath}/{settings.Id}.{settings.Version}");

                CakeInstallPackage(context, toolsDirectory, nugetPackage);
            }
        }