forked from ddrilling/AsbCloudServer
OS identification and build start process option
This commit is contained in:
parent
1d618302f8
commit
46074b6bd1
@ -6,6 +6,7 @@ using System.Linq;
|
|||||||
using CliWrap;
|
using CliWrap;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services.DrillingProgram.Convert
|
namespace AsbCloudInfrastructure.Services.DrillingProgram.Convert
|
||||||
{
|
{
|
||||||
@ -33,10 +34,30 @@ namespace AsbCloudInfrastructure.Services.DrillingProgram.Convert
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static (string programFile, string programArg) getOptionsStartupProcess (string inputFileName, string resultFileDir)
|
||||||
|
{
|
||||||
|
(string programFile, string programArg) startupOptions;
|
||||||
|
if (OperatingSystem.IsWindows())
|
||||||
|
{
|
||||||
|
startupOptions.programFile = "C:\\Program Files\\LibreOffice\\program\\soffice.exe";
|
||||||
|
startupOptions.programArg = $"-headless -convert-to pdf {inputFileName} --outdir {resultFileDir}";
|
||||||
|
return startupOptions;
|
||||||
|
}
|
||||||
|
if(OperatingSystem.IsLinux())
|
||||||
|
{
|
||||||
|
startupOptions.programFile = "/usr/bin/soffice";
|
||||||
|
startupOptions.programArg = $"--headless --convert-to pdf {inputFileName} --outdir {resultFileDir}";
|
||||||
|
return (startupOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new NotSupportedException ("Вызов процесса в текущей операционной системе не возможен");
|
||||||
|
}
|
||||||
|
|
||||||
private static async Task StartConvertProcessAsync(string inputFileName, string resultFileDir, CancellationToken token)
|
private static async Task StartConvertProcessAsync(string inputFileName, string resultFileDir, CancellationToken token)
|
||||||
{
|
{
|
||||||
var command = Cli.Wrap("/usr/bin/soffice")
|
var startupOptions = getOptionsStartupProcess(inputFileName, resultFileDir);
|
||||||
.WithArguments($"--headless --convert-to pdf {inputFileName} --outdir {resultFileDir}");
|
var command = Cli.Wrap(startupOptions.programFile)
|
||||||
|
.WithArguments(startupOptions.programArg);
|
||||||
await command.ExecuteAsync(token);
|
await command.ExecuteAsync(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user