diff --git a/src/Velopack.Vpk/Commands/LinuxPackCommand.cs b/src/Velopack.Vpk/Commands/LinuxPackCommand.cs index b4b0502a..2942b576 100644 --- a/src/Velopack.Vpk/Commands/LinuxPackCommand.cs +++ b/src/Velopack.Vpk/Commands/LinuxPackCommand.cs @@ -5,7 +5,7 @@ public class LinuxPackCommand : PackCommand public string Categories { get; private set; } public LinuxPackCommand() - : base("pack", "Create a Linux .AppImage bundle from application files.") + : base("pack", "Create a Linux .AppImage bundle from application files.", RuntimeOs.Linux) { this.RemoveOption(NoPortableOption); this.RemoveOption(NoInstOption); diff --git a/src/Velopack.Vpk/Commands/OsxBundleCommand.cs b/src/Velopack.Vpk/Commands/OsxBundleCommand.cs index 23f36284..e2606733 100644 --- a/src/Velopack.Vpk/Commands/OsxBundleCommand.cs +++ b/src/Velopack.Vpk/Commands/OsxBundleCommand.cs @@ -16,7 +16,7 @@ public class OsxBundleCommand : PackCommand } public OsxBundleCommand(string name, string description) - : base(name, description) + : base(name, description, RuntimeOs.OSX) { IconOption.RequiresExtension(".icns"); diff --git a/src/Velopack.Vpk/Commands/WindowsPackCommand.cs b/src/Velopack.Vpk/Commands/WindowsPackCommand.cs index ebed80c5..263f87e9 100644 --- a/src/Velopack.Vpk/Commands/WindowsPackCommand.cs +++ b/src/Velopack.Vpk/Commands/WindowsPackCommand.cs @@ -19,7 +19,7 @@ public class WindowsPackCommand : PackCommand public string Shortcuts { get; private set; } public WindowsPackCommand() - : base("pack", "Creates a release from a folder containing application files.") + : base("pack", "Creates a release from a folder containing application files.", RuntimeOs.Windows) { EntryExecutableNameOption.RequiresExtension(".exe"); IconOption.RequiresExtension(".ico"); diff --git a/src/Velopack.Vpk/Commands/_OutputCommand.cs b/src/Velopack.Vpk/Commands/_OutputCommand.cs index 6b75738f..1f3f7067 100644 --- a/src/Velopack.Vpk/Commands/_OutputCommand.cs +++ b/src/Velopack.Vpk/Commands/_OutputCommand.cs @@ -12,7 +12,7 @@ public abstract class OutputCommand : BaseCommand protected CliOption ChannelOption { get; private set; } - protected OutputCommand(string name, string description) + protected OutputCommand(string name, string description, RuntimeOs targetOs = RuntimeOs.Unknown) : base(name, description) { ReleaseDirectoryOption = AddOption((v) => ReleaseDir = v.ToFullNameOrNull(), "-o", "--outputDir") @@ -24,7 +24,7 @@ public abstract class OutputCommand : BaseCommand .SetDescription("The channel to use for this release.") .RequiresValidNuGetId() .SetArgumentHelpName("NAME") - .SetDefault(ReleaseEntryHelper.GetDefaultChannel(VelopackRuntimeInfo.SystemOs)); + .SetDefault(ReleaseEntryHelper.GetDefaultChannel(targetOs == RuntimeOs.Unknown ? VelopackRuntimeInfo.SystemOs : targetOs)); } public DirectoryInfo GetReleaseDirectory() diff --git a/src/Velopack.Vpk/Commands/_PackCommand.cs b/src/Velopack.Vpk/Commands/_PackCommand.cs index 87d930cf..0d03a22b 100644 --- a/src/Velopack.Vpk/Commands/_PackCommand.cs +++ b/src/Velopack.Vpk/Commands/_PackCommand.cs @@ -53,8 +53,8 @@ public abstract class PackCommand : PlatformCommand protected CliOption NoInstOption { get; private set; } - public PackCommand(string name, string description) - : base(name, description) + public PackCommand(string name, string description, RuntimeOs targetOs = RuntimeOs.Unknown) + : base(name, description, targetOs) { PackIdOption = AddOption((v) => PackId = v, "--packId", "-u") .SetDescription("Unique Id for application bundle.") diff --git a/src/Velopack.Vpk/Commands/_PlatformCommand.cs b/src/Velopack.Vpk/Commands/_PlatformCommand.cs index 63862d6c..a3ee1155 100644 --- a/src/Velopack.Vpk/Commands/_PlatformCommand.cs +++ b/src/Velopack.Vpk/Commands/_PlatformCommand.cs @@ -6,7 +6,7 @@ public abstract class PlatformCommand : OutputCommand protected CliOption TargetRuntimeOption { get; private set; } - protected PlatformCommand(string name, string description) : base(name, description) + protected PlatformCommand(string name, string description, RuntimeOs targetOs = RuntimeOs.Unknown) : base(name, description, targetOs) { TargetRuntimeOption = AddOption((v) => TargetRuntime = v, "-r", "--runtime") .SetDescription("The target runtime to build packages for.")