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 System.Threading.Tasks;
|
||||
using System.Threading;
|
||||
using System;
|
||||
|
||||
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)
|
||||
{
|
||||
var command = Cli.Wrap("/usr/bin/soffice")
|
||||
.WithArguments($"--headless --convert-to pdf {inputFileName} --outdir {resultFileDir}");
|
||||
var startupOptions = getOptionsStartupProcess(inputFileName, resultFileDir);
|
||||
var command = Cli.Wrap(startupOptions.programFile)
|
||||
.WithArguments(startupOptions.programArg);
|
||||
await command.ExecuteAsync(token);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user