From 417729425087e196a4be80b94fd49131baba074a Mon Sep 17 00:00:00 2001 From: CreepyCrafter24 <33260128+CreepyCrafter24@users.noreply.github.com> Date: Sun, 1 Dec 2019 16:21:50 +0100 Subject: [PATCH] PostBuild script --- PostBuild.cs | 40 ++++++++++++++++++++++++++++++++++++++++ cashew.sln | 1 + cashew/cashew.csproj | 5 ++--- 3 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 PostBuild.cs diff --git a/PostBuild.cs b/PostBuild.cs new file mode 100644 index 0000000..65bce79 --- /dev/null +++ b/PostBuild.cs @@ -0,0 +1,40 @@ +using System; +using System.IO; +using System.IO.Compression; +using System.Linq; + +public class Program +{ + public static void Main(string[] args) + { + //Variables + string TargetDir = args[0]; + string TargetFileName = args[1]; + if (TargetDir.EndsWith("\\")) + TargetDir = TargetDir.Remove(TargetDir.Length - 1); + //Copy Data dir + if (File.Exists(TargetDir + ".zip")) + File.Delete(TargetDir + ".zip"); + if (File.Exists(TargetDir + @"\package.zip")) + File.Delete(TargetDir + @"\package.zip"); + if (Directory.Exists(TargetDir + @"\package")) + Directory.Delete(TargetDir + @"\package", true); + ZipFile.CreateFromDirectory(TargetDir, TargetDir + ".zip"); + Directory.CreateDirectory(TargetDir + @"\package\Data"); + ZipFile.ExtractToDirectory(TargetDir + ".zip", TargetDir + @"\package\Data"); + File.Delete(TargetDir + ".zip"); + //Remove useless Files + Directory.GetFiles(TargetDir + @"\package\Data") + .Where(s => new string[] { ".xml", ".pdb" }.Contains(Path.GetExtension(s))) + .ToList().ForEach(s => File.Delete(s)); + //Add package scripts + string programName = Path.GetFileNameWithoutExtension(TargetFileName); + File.WriteAllText(TargetDir + @"\package\Install.bat", + "@echo off\r\necho INSTALL\r\npowershell \"$s=(New-Object -COM WScript.Shell).CreateShortcut('%appdata%\\Microsoft\\Windows\\Start Menu\\Programs\\" + programName + ".lnk');$s.TargetPath='%cd%\\" + programName + ".exe';$s.Save()\"\r\ntimeout /t 1"); + File.WriteAllText(TargetDir + @"\package\Remove.bat", + "@echo off\r\necho REMOVE\r\ndel \"%appdata%\\Microsoft\\Windows\\Start Menu\\Programs\\" + programName + ".lnk\"\r\ntaskkill /f /im \"" + programName + ".exe\"\r\ntimeout /t 1"); + //Package up result + ZipFile.CreateFromDirectory(TargetDir + @"\package", TargetDir + @"\package.zip"); + Directory.Delete(TargetDir + @"\package", true); + } +} diff --git a/cashew.sln b/cashew.sln index 1a04883..d63b701 100644 --- a/cashew.sln +++ b/cashew.sln @@ -7,6 +7,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cashew", "cashew\cashew.csp EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B438CEFA-611B-4DD2-B1CE-EE62976A6BDE}" ProjectSection(SolutionItems) = preProject + PostBuild.cs = PostBuild.cs README.md = README.md EndProjectSection EndProject diff --git a/cashew/cashew.csproj b/cashew/cashew.csproj index ab5a301..73f9b9a 100644 --- a/cashew/cashew.csproj +++ b/cashew/cashew.csproj @@ -219,8 +219,7 @@ - cd $(TargetDir) -if $(ConfigurationName)==Release del *.xml -if $(ConfigurationName)==Release del *.pdb + cd $(SolutionDir) +if $(ConfigurationName)==Release C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe PostBuild.cs /r:System.IO.Compression.FileSystem.dll & PostBuild $(TargetDir) $(TargetFileName) & del PostBuild.exe \ No newline at end of file