Skip to content

Commit ccbbf75

Browse files
committed
lots of improvements that I never checked in
1 parent a599016 commit ccbbf75

13 files changed

+26559
-256
lines changed

.gitignore

+600-195
Large diffs are not rendered by default.

NuGetPush.Preprocessed.csproj

+25,898
Large diffs are not rendered by default.

NuGetPush.csproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* License: MIT (https://opensource.org/licenses/MIT)
1111
-->
1212

13-
<Project Sdk="Microsoft.NET.Sdk">
13+
<Project Sdk="Dgmjr.NET.Sdk">
1414
<Import Project="./Sdk/Sdk.props" />
1515
<PropertyGroup>
1616
<TargetFramework>net8.0</TargetFramework>
@@ -74,8 +74,8 @@
7474
<Target Name="CleanJSOutput" AfterTargets="Clean">
7575
<Delete Files="$(MSBuildThisFileDirectory)Scripts/js/*" />
7676
</Target>
77-
<Target Name="TestNuGetPush" AfterTargets="AfterBuild">
77+
<!-- <Target Name="TestNuGetPush" AfterTargets="AfterBuild">
7878
<MSBuild Projects="./TestTasks.csproj" />
79-
</Target>
79+
</Target> -->
8080
<Import Project="./Sdk/Sdk.targets" />
8181
</Project>

Tasks/Constants.cs

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ namespace NuGetPush.Tasks;
1212
public static class Constants
1313
{
1414
public const string DefaultDynamicTargetsFilePath = "NuGet.Dynamic.targets";
15+
public const string NupkgRegexString =
16+
@"^(?:.*/)?(?<PackageId>.+)\.(?<Version>(?<Major>\d+)\.(?<Minor>\d+)\.(?<Build>\d+)(?:-(?<Prerelease>[\w.-]+))?)\.nupkg$";
1517

1618
public static class MetadataNames
1719
{

Tasks/Delete.cs

+17-18
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@
22

33
namespace NuGetPush.Tasks;
44

5-
public class DeletePackage : NuGetPackageTaskBase
5+
public class DeletePackage(ResourceManager taskResources, string? helpKeywordPrefix = default) : NuGetPackageTaskBase(taskResources, helpKeywordPrefix)
66
{
7-
public DeletePackage(ResourceManager taskResources, string helpKeywordPrefix)
8-
: base(taskResources, helpKeywordPrefix) { }
9-
10-
public DeletePackage()
11-
: base() { }
7+
public DeletePackage() : this(new ResourceManager("NuGetPush.Tasks", typeof(DeletePackage).Assembly)) { }
128

139
[Required]
1410
public string PackageId { get; set; }
@@ -24,18 +20,21 @@ public override bool Execute()
2420
}
2521

2622
Logger.LogWarning($"Deleting {PackageId} version {PackageVersion} from source {Source}...");
27-
DeleteRunner.Run(
28-
Settings,
29-
PackageSourceProvider,
30-
PackageId,
31-
PackageVersion,
32-
Source,
33-
ApiKey,
34-
true,
35-
false,
36-
_ => true,
37-
Logger
38-
);
23+
var psi = new ProcessStartInfo("dotnet", ["nuget", "delete", PackageId, PackageVersion, "-s", Source, "-k", ApiKey]);
24+
var p = Process.Start(psi);
25+
p.WaitForExit();
26+
// DeleteRunner.Run(
27+
// Settings,
28+
// PackageSourceProvider,
29+
// PackageId,
30+
// PackageVersion,
31+
// Source,
32+
// ApiKey,
33+
// true,
34+
// false,
35+
// _ => true,
36+
// Logger
37+
// );
3938
Logger.LogWarning("Done.");
4039
return true;
4140
}

Tasks/DeleteAndPush.cs

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
namespace NuGetPush.Tasks;
22

3+
using System.Configuration;
4+
35
public class DeleteAndPush : NuGetPackageTaskBase
46
{
57
[Required]
@@ -26,6 +28,7 @@ public override bool Execute()
2628
determineIfPackageExists.Execute();
2729
if (determineIfPackageExists.PackageExists)
2830
{
31+
Log.LogWarning($"Package {PackageId} already exists in source {Source}. Deleting it.");
2932
new DeletePackage(TaskResources, HelpKeywordPrefix)
3033
{
3134
Source = Source,

Tasks/DetermineIfPackageExists.cs

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public virtual bool DoesPackageExist()
4747
{
4848
try
4949
{
50+
List<string> args = ["nuget", "push", PackagePath, "-s", Source];
5051
var psi = new ProcessStartInfo("nuget", ["search", "-s", Source, PackageId, "-PreRelease"])
5152
{
5253
RedirectStandardOutput = true

Tasks/GenerateDynamicTargets.cs

+12-9
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public string PackageId
2929
private string _packageVersion;
3030
public string PackageVersion
3131
{
32-
get => _packageVersion ??= PackagePath.GetPackageId();
32+
get => _packageVersion ??= PackagePath.GetPackageVersion();
3333
set => _packageVersion = value;
3434
}
3535

@@ -73,20 +73,23 @@ public override bool Execute()
7373

7474
var dynamicTargetsSource = $"""
7575
<Project>
76-
{Join("\n", packageSources.Select(source =>
76+
{Join(
77+
"""
78+
79+
80+
<!-- ******************* -->
81+
82+
83+
""", packageSources.Select(source =>
7784
$"""
7885
<PropertyGroup>
7986
<Push{SanitizeName(source.Name)}IsEnabled Condition="'$(Push{SanitizeName(source.Name)}IsEnabled)' == ''">false</Push{SanitizeName(source.Name)}IsEnabled>
8087
</PropertyGroup>
8188
82-
<Target Name="Push{SanitizeName(source.Name)}" AfterTargets="Pack" Condition="'$(GeneratePackageOnBuild)' == 'true' And '$(Push{SanitizeName(source.Name)}IsEnabled)' == 'true'">
83-
<!--<DetermineIfPackageExists PackagePath="{PackagePath}" ProjectFile="{ProjectFile}" Source="{source.Source}">
89+
<Target Name="Push{SanitizeName(source.Name)}" AfterTargets="Pack" DependsOnTargets="Pack" Condition="'$(GeneratePackageOnBuild)' == 'true' And '$(Push{SanitizeName(source.Name)}IsEnabled)' == 'true'">
90+
<DetermineIfPackageExists PackagePath="{PackagePath}" ProjectFile="{ProjectFile}" Source="{source.Source}">
8491
<Output TaskParameter="PackageExists" PropertyName="PackageExists" />
85-
</DetermineIfPackageExists>-->
86-
87-
<Exec Command="nuget search -s {source.Name} {PackageId} -PreRelease | grep {PackageId}" ConsoleToMsBuild="true" IgnoreExitCode="true">
88-
<Output TaskParameter="ConsoleOutput" ItemName="ConsoleOutput"/>
89-
</Exec>
92+
</DetermineIfPackageExists>
9093
9194
<PropertyGroup>
9295
<PackageExists>false</PackageExists> <!-- default it to false -->

Tasks/NuGetPackageTaskBase.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
namespace NuGetPush.Tasks;
2+
13
using System;
24

35
using NuGet.Protocol.Core.Types;
46

5-
namespace NuGetPush.Tasks;
6-
77
public abstract class NuGetPackageTaskBase() : NuGetTaskBase
88
{
99
protected NuGetPackageTaskBase(ResourceManager taskResources)

Tasks/NuGetTaskBase.cs

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ namespace NuGetPush.Tasks;
22

33
public abstract class NuGetTaskBase() : MSBTask
44
{
5+
protected static readonly ResourceManager DefaultResourceManager =
6+
new("NuGetPush.Tasks", typeof(NuGetTaskBase).Assembly);
7+
58
protected NuGetTaskBase(ResourceManager taskResources)
69
: this()
710
{

Tasks/Push.cs

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
1+
using NuGetPush.Tasks.Extensions;
2+
13
namespace NuGetPush.Tasks;
24

35
public class PushPackage : NuGetPackageTaskBase
46
{
57
public PushPackage(ResourceManager taskResources, string helpKeywordPrefix) : base(taskResources, helpKeywordPrefix) { }
68
public PushPackage() : base() { }
79

10+
public string PackageId => PackagePath.GetPackageId();
11+
12+
public string PackageVersion => PackagePath.GetPackageVersion();
13+
814
[Required]
915
public string PackagePath { get; set; }
1016
public override bool Execute()
@@ -14,7 +20,15 @@ public override bool Execute()
1420
return false;
1521
}
1622

17-
PushRunner.Run(Settings, PackageSourceProvider, [PackagePath], Source, ApiKey, null, null, 10, false, true, false, true, Logger);
23+
Logger.LogWarning($"Pushing {PackageId} version {PackageVersion} to source {Source}...");
24+
// PushRunner.Run(Settings, PackageSourceProvider, [PackagePath], Source, ApiKey, null, null, 10, false, true, false, true, Logger);
25+
List<string> args = ["nuget", "push", PackagePath, "-s", Source];
26+
if(!IsNullOrEmpty(ApiKey))
27+
{
28+
args.AddRange(["-k", ApiKey]);
29+
}
30+
var psi = new ProcessStartInfo("dotnet", args);
31+
Process.Start(psi).WaitForExit();
1832
return true;
1933
}
2034

Tasks/StringExtensions.cs

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
namespace NuGetPush.Tasks.Extensions;
22

3+
using static Constants;
4+
35
public static partial class NuGetStringExtensions
46
{
5-
public const string NupkgRegexString =
6-
@"^(?:.*/)?(?<PackageId>.+)\.(?<Version>(?<Major>\d+)\.(?<Minor>\d+)\.(?<Build>\d+)(?:-(?<Prerelease>[\w.-]+))?)\.nupkg$";
7-
87
[GeneratedRegex(NupkgRegexString)]
9-
private static partial Regex NupkgRegex();
8+
private static partial Regx NupkgRegex();
109

1110
public static string GetPackageId(this string packagePath) =>
1211
NupkgRegex().IsMatch(packagePath)

TestTasks.csproj

-24
This file was deleted.

0 commit comments

Comments
 (0)