Compare commits

...

2 Commits

Author SHA1 Message Date
Holger Boerchers
26343921f7 Merge branch 'master' of https://git.boerchers.org/holger/Katteker 2018-05-26 23:18:45 +02:00
Holger Boerchers
d87adfc7f0 Refactored ChangelogHelper 2018-05-26 23:18:39 +02:00
2 changed files with 45 additions and 30 deletions

View File

@ -10,7 +10,7 @@ namespace KattekerCreator
{
public class Program
{
private const string _executable = @"C:\Program Files (x86)\NSIS\makensis.exe";
private const string Executable = @"C:\Program Files (x86)\NSIS\makensis.exe";
private readonly string _baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
private ApplicationArguments _appArguments;
private AssemblyFileInfo _assemblyFileInfo;
@ -119,13 +119,13 @@ namespace KattekerCreator
private static string CompileSetupScript(string templateFile)
{
if (!File.Exists(_executable)) throw new FileNotFoundException("NSIS not installed properly.");
if (!File.Exists(Executable)) throw new FileNotFoundException("NSIS not installed properly.");
int exitcode;
using (var p = new Process())
{
p.StartInfo = new ProcessStartInfo
{
FileName = _executable,
FileName = Executable,
Arguments = $"\"{templateFile}\"",
UseShellExecute = false
};
@ -133,10 +133,10 @@ namespace KattekerCreator
p.Start();
p.WaitForExit();
exitcode = p.ExitCode;
Log.WriteInfoLine($"{Path.GetFileName(_executable)} has exited with Exitcode: {exitcode} (Took: {sw.ElapsedMilliseconds}ms)");
Log.WriteInfoLine($"{Path.GetFileName(Executable)} has exited with Exitcode: {exitcode} (Took: {sw.ElapsedMilliseconds}ms)");
}
if (exitcode != 0) throw new Exception($"{Path.GetFileName(_executable)} has exited with Exitcode: {exitcode}");
if (exitcode != 0) throw new Exception($"{Path.GetFileName(Executable)} has exited with Exitcode: {exitcode}");
return Path.ChangeExtension(templateFile, "exe");
}

View File

@ -48,34 +48,49 @@ namespace Katteker
{
if (!path.EndsWith("/", StringComparison.Ordinal))
path += "/";
var webReq = WebRequest.Create(path + filename);
try
{
using (var response = await webReq.GetResponseAsync().ConfigureAwait(false))
using (var sr = new StreamReader(response.GetResponseStream()))
{
return await sr.ReadToEndAsync().ConfigureAwait(false);
}
}
catch (Exception)
{
try
{
var changelogFilename = Path.GetFileName(filename);
if (changelogFilename == null) return null;
var currentChangelogPath = Path.Combine(Environment.CurrentDirectory, changelogFilename);
if (File.Exists(currentChangelogPath))
{
return File.ReadAllText(currentChangelogPath);
}
var changelog = await ReadFromRemoteFile(path + filename) ?? ReadFromLocalFile(filename);
return changelog;
}
}
catch (Exception)
{
// ignore;
}
return null;
}
private static async Task<string> ReadFromRemoteFile(string path)
{
var webReq = WebRequest.Create(path);
try
{
using (var response = await webReq.GetResponseAsync().ConfigureAwait(false))
using (var sr = new StreamReader(response.GetResponseStream()))
{
return await sr.ReadToEndAsync().ConfigureAwait(false);
}
}
catch (Exception)
{
// ignore;
}
return null;
}
private static string ReadFromLocalFile(string filename)
{
try
{
var changelogFilename = Path.GetFileName(filename);
if (changelogFilename == null) return null;
var currentChangelogPath = Path.Combine(Environment.CurrentDirectory, changelogFilename);
if (File.Exists(currentChangelogPath))
{
return File.ReadAllText(currentChangelogPath);
}
}
catch (Exception)
{
// ignore;
}
return null;
}