Polish CLI and add Utilities class.
This commit is contained in:
parent
947bc0a49f
commit
a67f5bbef8
6 changed files with 71 additions and 14 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,3 +1,6 @@
|
||||||
|
# Custom Items
|
||||||
|
latest-commit-hash.txt
|
||||||
|
|
||||||
# ---> C Sharp
|
# ---> C Sharp
|
||||||
# Build Folders (you can keep bin if you'd like, to store dlls and pdbs)
|
# Build Folders (you can keep bin if you'd like, to store dlls and pdbs)
|
||||||
[Bb]in/
|
[Bb]in/
|
||||||
|
|
|
@ -6,6 +6,7 @@ EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5C9D36DD-3962-45BF-938E-BE1E258053EC}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5C9D36DD-3962-45BF-938E-BE1E258053EC}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
README.md = README.md
|
README.md = README.md
|
||||||
|
.gitignore = .gitignore
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
SpritePacker, by Starbeamrainbowlabs
|
SpritePacker v{version}, by Starbeamrainbowlabs
|
||||||
|
Built at {build-time} from git commit {commit-hash}
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
mono ./SpritePacker.exe [flags] [filenames]
|
mono ./SpritePacker.exe [flags] [filenames]
|
||||||
|
|
|
@ -10,24 +10,24 @@ namespace SpritePacker
|
||||||
{
|
{
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
|
Utilities.GetProgramBuildDate();
|
||||||
List<string> values = new List<string>();
|
List<string> values = new List<string>();
|
||||||
for(int i = 0; i < args.Length; i++)
|
for(int i = 0; i < args.Length; i++)
|
||||||
{
|
{
|
||||||
switch(args[i])
|
switch(args[i])
|
||||||
{
|
{
|
||||||
case "--help":
|
case "--help":
|
||||||
/*
|
string helpText = Utilities.GetEmbeddedResourceContent("SpritePacker.Help.txt");
|
||||||
string[] resFiles = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
|
string commitHash = Utilities.GetEmbeddedResourceContent("SpritePacker.latest-commit-hash.txt").Trim();
|
||||||
foreach (string str in resFiles)
|
Dictionary<string, string> templateValues = new Dictionary<string, string>() {
|
||||||
Console.WriteLine("[{0}]", str);
|
{ "version", Utilities.GetProgramVersion().ToString() },
|
||||||
*/
|
{ "build-time", Utilities.GetProgramBuildDate().ToString("dd/MM/yyyy h:mmtt") },
|
||||||
|
{ "commit-hash", commitHash.Substring(commitHash.Length - 7) }
|
||||||
|
};
|
||||||
|
foreach (KeyValuePair<string, string> replacePair in templateValues)
|
||||||
|
helpText = helpText.Replace(string.Format("{{{0}}}", replacePair.Key), replacePair.Value);
|
||||||
|
|
||||||
Assembly asm = Assembly.GetExecutingAssembly();
|
Console.WriteLine(helpText);
|
||||||
Stream stream = asm.GetManifestResourceStream("SpritePacker.Help.txt");
|
|
||||||
StreamReader source = new StreamReader(stream);
|
|
||||||
Console.Write(source.ReadToEnd());
|
|
||||||
source.Dispose();
|
|
||||||
stream.Dispose();
|
|
||||||
return;
|
return;
|
||||||
case "--version":
|
case "--version":
|
||||||
Console.WriteLine("Version text coming soon!");
|
Console.WriteLine("Version text coming soon!");
|
||||||
|
|
|
@ -29,6 +29,9 @@
|
||||||
<Externalconsole>true</Externalconsole>
|
<Externalconsole>true</Externalconsole>
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<PreBuildEvent>git rev-parse HEAD >../../latest-commit-hash.txt</PreBuildEvent>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
|
@ -38,9 +41,11 @@
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Packer.cs" />
|
<Compile Include="Packer.cs" />
|
||||||
<Compile Include="Sprite.cs" />
|
<Compile Include="Sprite.cs" />
|
||||||
|
<Compile Include="Utilities.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Help.txt" />
|
<EmbeddedResource Include="Help.txt" />
|
||||||
|
<EmbeddedResource Include="latest-commit-hash.txt" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
47
SpritePacker/Utilities.cs
Normal file
47
SpritePacker/Utilities.cs
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
using System;
|
||||||
|
using System.Dynamic;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace SpritePacker
|
||||||
|
{
|
||||||
|
public class Utilities
|
||||||
|
{
|
||||||
|
public static string[] GetEmbeddedResourceList()
|
||||||
|
{
|
||||||
|
return System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void PrintEnbeddedResourceList()
|
||||||
|
{
|
||||||
|
string[] resFiles = GetEmbeddedResourceList();
|
||||||
|
foreach (string str in resFiles)
|
||||||
|
Console.WriteLine("[{0}]", str);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetEmbeddedResourceContent(string resourceName)
|
||||||
|
{
|
||||||
|
Assembly asm = Assembly.GetExecutingAssembly();
|
||||||
|
Stream stream = asm.GetManifestResourceStream(resourceName);
|
||||||
|
StreamReader source = new StreamReader(stream);
|
||||||
|
string fileContent = source.ReadToEnd();
|
||||||
|
source.Dispose();
|
||||||
|
stream.Dispose();
|
||||||
|
return fileContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DateTime GetProgramBuildDate()
|
||||||
|
{
|
||||||
|
Version asmVersion = GetProgramVersion();
|
||||||
|
return new DateTime(2000, 1, 1).Add(new TimeSpan(
|
||||||
|
TimeSpan.TicksPerDay * asmVersion.Build +
|
||||||
|
TimeSpan.TicksPerSecond * asmVersion.Revision * 2
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Version GetProgramVersion()
|
||||||
|
{
|
||||||
|
return Assembly.GetEntryAssembly().GetName().Version;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue