mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 12:30:32 +00:00
58 lines
1.6 KiB
C#
58 lines
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Microsoft.Build.Utilities;
|
|
using Microsoft.Build.Framework;
|
|
using System.IO;
|
|
|
|
namespace Cosmos.Build.MSBuild
|
|
{
|
|
public class MakeISO: BaseToolTask
|
|
{
|
|
#region Properties
|
|
[Required]
|
|
public string InputFile
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
[Required]
|
|
public string OutputFile
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
[Required]
|
|
public string CosmosBuildDir
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
#endregion
|
|
public override bool Execute()
|
|
{
|
|
string xPath = Path.Combine(CosmosBuildDir, @"ISO\");
|
|
if (File.Exists(OutputFile))
|
|
{
|
|
File.Delete(OutputFile);
|
|
}
|
|
if (File.Exists(Path.Combine(xPath, "output.bin")))
|
|
{
|
|
File.Delete(Path.Combine(xPath, "output.bin"));
|
|
}
|
|
File.Copy(InputFile, Path.Combine(xPath, "output.bin"));
|
|
File.SetAttributes(Path.Combine(xPath, "isolinux.bin"), FileAttributes.Normal);
|
|
|
|
Log.LogMessage("xPath = '{0}'", xPath);
|
|
|
|
return ExecuteTool(
|
|
xPath,
|
|
Path.Combine(CosmosBuildDir, "Tools\\mkisofs.exe"),
|
|
String.Format("-R -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o \"{0}\" .", Path.Combine(Environment.CurrentDirectory, OutputFile)),
|
|
"mkisofs");
|
|
}
|
|
}
|
|
}
|