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