Skip to content

Commit 4ba44c9

Browse files
committed
Basic build script
1 parent 2841cf8 commit 4ba44c9

File tree

5 files changed

+86
-2
lines changed

5 files changed

+86
-2
lines changed

ff-utils-winforms/Data/Paths.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,17 @@ public static void Init ()
1919
sessionTimestamp = $"{n.Year}-{n.Month}-{n.Day}-{n.Hour}-{n.Minute}-{n.Second}-{n.Millisecond}";
2020
}
2121

22+
public static string GetExe()
23+
{
24+
return System.Reflection.Assembly.GetEntryAssembly().GetName().CodeBase.Replace("file:///", "");
25+
}
26+
2227
public static string GetOwnFolder()
28+
{
29+
return new FileInfo(GetExe()).Directory.FullName;
30+
}
31+
32+
public static string GetWorkingDir()
2333
{
2434
return Environment.CurrentDirectory;
2535
}

ff-utils-winforms/Forms/MainForm.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ private void MainForm_Shown(object sender, EventArgs e)
7272
encSubCodec_SelectedIndexChanged(null, null);
7373
av1anAudCodec_SelectedIndexChanged(null, null);
7474
initialized = true;
75+
76+
if (Program.args.Where(x => x.StartsWith("package=")).Count() == 1)
77+
PackageBuild.Run(Program.args.Where(x => x.StartsWith("package=")).First().Split('=')[1]);
7578
}
7679

7780
void LoadUiConfig()
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
using Nmkoder.Data;
2+
using Nmkoder.Extensions;
3+
using Nmkoder.OS;
4+
using System;
5+
using System.Collections.Generic;
6+
using System.Diagnostics;
7+
using System.IO;
8+
using System.Linq;
9+
using System.Text;
10+
using System.Threading.Tasks;
11+
12+
namespace Nmkoder.IO
13+
{
14+
class PackageBuild
15+
{
16+
public static async Task Run (string ver)
17+
{
18+
Logger.Log($"Packaging...");
19+
20+
try
21+
{
22+
Program.Cleanup();
23+
string dir = Paths.GetOwnFolder();
24+
string copyDir = Path.Combine(dir, $"Nmkoder{ver}");
25+
IoUtils.DeleteIfExists(copyDir);
26+
Directory.CreateDirectory(copyDir);
27+
CopyDir(dir, copyDir, "bin");
28+
CopyFile(dir, copyDir, Path.GetFileName(Paths.GetExe()));
29+
30+
string path7z = @"C:\Program Files\7-Zip-Zstandard\7za.exe";
31+
string archivePath1 = Path.Combine(dir, $"Nmkoder{ver}.7z");
32+
string archivePath2 = Path.Combine(dir, $"Nmkoder{ver}-NoOCR.7z");
33+
34+
Process p1 = Process.Start(path7z, $"a {archivePath1.Wrap()} -m0=flzma2 -mx9 {copyDir.Wrap()}");
35+
while (!p1.HasExited) await Task.Delay(100);
36+
IoUtils.TryDeleteIfExists(Path.Combine(copyDir, "bin", "SE"));
37+
Process.Start(path7z, $"a {archivePath2.Wrap()} -m0=flzma2 -mx9 {copyDir.Wrap()}");
38+
39+
}
40+
catch(Exception e)
41+
{
42+
Logger.Log(e.Message);
43+
}
44+
45+
Logger.Log($"Done");
46+
}
47+
48+
private static void CopyFile(string baseDirSource, string baseDirTarget, string filename)
49+
{
50+
File.Copy(Path.Combine(baseDirSource, filename), Path.Combine(baseDirTarget, filename));
51+
}
52+
53+
private static void CopyDir (string baseDirSource, string baseDirTarget, string dirName)
54+
{
55+
IoUtils.CopyDir(Path.Combine(baseDirSource, dirName), Path.Combine(baseDirTarget, dirName));
56+
}
57+
}
58+
}

ff-utils-winforms/Nmkoder.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@
352352
<Compile Include="IO\ConfigParser.cs" />
353353
<Compile Include="IO\IoUtils.cs" />
354354
<Compile Include="IO\Logger.cs" />
355+
<Compile Include="IO\PackageBuild.cs" />
355356
<Compile Include="Main\RunTask.cs" />
356357
<Compile Include="Media\Av1anOutputHandler.cs" />
357358
<Compile Include="Media\AvProcess.cs" />

ff-utils-winforms/Program.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ namespace Nmkoder
1515
{
1616
static class Program
1717
{
18+
public static string[] fileArgs = new string[0];
19+
public static string[] args = new string[0];
20+
1821
public static bool busy;
1922
public static MainForm mainForm;
2023

@@ -25,13 +28,19 @@ static void Main()
2528
Config.Init();
2629
Cleanup();
2730

31+
fileArgs = Environment.GetCommandLineArgs().Where(a => a[0] != '-' && File.Exists(a)).ToList().Skip(1).ToArray();
32+
args = Environment.GetCommandLineArgs().Where(a => a[0] == '-').Select(x => x.Trim().Substring(1).ToLowerInvariant()).ToArray();
33+
Logger.Log($"Command Line: {Environment.CommandLine}", true);
34+
Logger.Log($"Files: {(fileArgs.Length > 0 ? string.Join(", ", fileArgs) : "None")}", true);
35+
Logger.Log($"Args: {(args.Length > 0 ? string.Join(", ", args) : "None")}", true);
36+
2837
Application.EnableVisualStyles();
2938
Application.SetCompatibleTextRenderingDefault(false);
3039
Console.WriteLine(Environment.CurrentDirectory);
3140
Application.Run(new MainForm());
3241
}
3342

34-
public static void Cleanup ()
43+
public static void Cleanup()
3544
{
3645
try
3746
{
@@ -57,8 +66,11 @@ public static void Cleanup ()
5766

5867
foreach (string file in IoUtils.GetFilesSorted(Paths.GetBinPath(), true, "*.log*"))
5968
IoUtils.TryDeleteIfExists(file);
69+
70+
foreach (string file in IoUtils.GetFilesSorted(Paths.GetBinPath(), true, "desktop.ini"))
71+
IoUtils.TryDeleteIfExists(file);
6072
}
61-
catch(Exception e)
73+
catch (Exception e)
6274
{
6375
Logger.Log($"Cleanup Error: {e.Message}\n{e.StackTrace}");
6476
}

0 commit comments

Comments
 (0)