Cosmos/source/Cosmos.Build.Tasks/CreateSyslinuxConfig.cs
2017-12-24 21:20:10 +00:00

45 lines
1.3 KiB
C#

using System;
using System.IO;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
namespace Cosmos.Build.Tasks
{
public class CreateSyslinuxConfig : Task
{
[Required]
public string IsoDirectory { get; set; }
[Required]
public string BinName { get; set; }
private string Indentation = " ";
public override bool Execute()
{
if (String.IsNullOrWhiteSpace(IsoDirectory) || !Directory.Exists(IsoDirectory))
{
Log.LogError($"Invalid ISO directory! ISO directory: '{IsoDirectory}'");
return false;
}
var xBinName = BinName;
var xLabelName = Path.GetFileNameWithoutExtension(xBinName);
using (var xWriter = File.CreateText(Path.Combine(IsoDirectory, "syslinux.cfg")))
{
xWriter.WriteLine("default " + xLabelName);
xWriter.WriteLine("label " + xLabelName);
WriteIndentedLine(xWriter, "kernel mboot.c32");
WriteIndentedLine(xWriter, "append " + xBinName);
}
return true;
}
private void WriteIndentedLine(TextWriter aWriter, string aText)
{
aWriter.WriteLine(Indentation + aText);
}
}
}