diff --git a/GameBundle/Options.cs b/GameBundle/Options.cs index b49553f..1b0dddb 100644 --- a/GameBundle/Options.cs +++ b/GameBundle/Options.cs @@ -11,34 +11,40 @@ namespace GameBundle { public string OutputDirectory { get; set; } [Option('v', "verbose")] public bool Verbose { get; set; } + [Option('w', "win", HelpText = "Bundle for windows")] public bool BuildWindows { get; set; } [Option('l', "linux", HelpText = "Bundle for linux")] public bool BuildLinux { get; set; } [Option('m', "mac", HelpText = "Bundle for mac")] public bool BuildMac { get; set; } + [Option('z', "zip", HelpText = "Store the build results in zip files instead of folders")] + public bool Zip { get; set; } + [Option('b', "mac-bundle", HelpText = "Create an app bundle for mac")] public bool MacBundle { get; set; } [Option("mac-bundle-resources", Default = new[] {"Content", "*.icns"}, HelpText = "When creating an app bundle for mac, things that should go into the Resources folder rather than the MacOS folder")] public IEnumerable MacBundleResources { get; set; } [Option("mac-bundle-ignore", Default = new string[0], HelpText = "When creating an app bundle for mac, things that should be left out of the mac bundle and stay in the output folder")] public IEnumerable MacBundleIgnore { get; set; } - [Option('z', "zip", HelpText = "Store the build results in zip files instead of folders")] - public bool Zip { get; set; } + + [Option("skip-lib", HelpText = "When bundling, skip beautifying the output by moving files to the library folder")] + public bool SkipLib { get; set; } [Option('e', "exclude", HelpText = "Files that should not be moved to the library folder")] public IEnumerable ExcludedFiles { get; set; } + [Option("lib-name", Default = "Lib", HelpText = "The name of the library folder that is created")] + public string LibFolder { get; set; } + [Option("32-bit", HelpText = "Publish for 32 bit instead of 64 bit. Note that this is only possible on Windows")] public bool Publish32Bit { get; set; } [Option('t', "trim", HelpText = "Trim the application when publishing")] public bool Trim { get; set; } [Option('c', "config", Default = "Release", HelpText = "The build configuration to use")] public string BuildConfig { get; set; } - [Option("lib-name", Default = "Lib", HelpText = "The name of the library folder that is created")] - public string LibFolder { get; set; } - [Option('n', "name-builds", HelpText = "Name the build output directories by the project's name")] - public bool NameBuilds { get; set; } [Option('a', "build-args", HelpText = "Additional arguments that should be passed to the dotnet publish command")] public string BuildArgs { get; set; } + [Option('n', "name-builds", HelpText = "Name the build output directories by the project's name")] + public bool NameBuilds { get; set; } } } \ No newline at end of file diff --git a/GameBundle/Program.cs b/GameBundle/Program.cs index 026d503..2cc0233 100644 --- a/GameBundle/Program.cs +++ b/GameBundle/Program.cs @@ -68,16 +68,18 @@ namespace GameBundle { return publishResult; // Run beauty - var excludes = $"\"{string.Join(";", options.ExcludedFiles)}\""; - var log = options.Verbose ? "Detail" : "Error"; - var beautyResult = RunProcess(options, "dotnet", $"ncbeauty --loglevel={log} --force=True \"{path}\" \"{options.LibFolder}\" {excludes}", AppDomain.CurrentDomain.BaseDirectory); - if (beautyResult != 0) - return beautyResult; + if (!options.SkipLib) { + var excludes = $"\"{string.Join(";", options.ExcludedFiles)}\""; + var log = options.Verbose ? "Detail" : "Error"; + var beautyResult = RunProcess(options, "dotnet", $"ncbeauty --loglevel={log} --force=True \"{path}\" \"{options.LibFolder}\" {excludes}", AppDomain.CurrentDomain.BaseDirectory); + if (beautyResult != 0) + return beautyResult; - // Remove the beauty file since it's just a marker - var beautyFile = new FileInfo(Path.Combine(path, "NetCoreBeauty")); - if (beautyFile.Exists) - beautyFile.Delete(); + // Remove the beauty file since it's just a marker + var beautyFile = new FileInfo(Path.Combine(path, "NetCoreBeauty")); + if (beautyFile.Exists) + beautyFile.Delete(); + } // Run any additional actions like creating the mac bundle additionalAction?.Invoke();