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); }
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); } }