| File: WebJobsCommandGenerator.cs | Web Access |
| Project: src\sdk\src\WebSdk\Publish\Tasks\Microsoft.NET.Sdk.Publish.Tasks.csproj (Microsoft.NET.Sdk.Publish.Tasks) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Microsoft.NET.Sdk.Publish.Tasks { public static class WebJobsCommandGenerator { public static string RunCommand(string? targetPath, bool useAppHost, string? executableExtension, bool isLinux) { string? appName = Path.GetFileName(targetPath); string? command = $"dotnet {appName}"; if (useAppHost) { command = Path.ChangeExtension(appName, !string.IsNullOrWhiteSpace(executableExtension) ? executableExtension : null); // dot-space syntax to execute the command if (isLinux) { command = $". {command}"; } } // For Apps targeting .NET Framework, the extension is always exe. RID is not set for .NETFramework apps with PlatformType set to AnyCPU. if (string.Equals(Path.GetExtension(targetPath), ".exe", StringComparison.OrdinalIgnoreCase)) { command = Path.ChangeExtension(appName, ".exe"); } // pass-all-parameters argument var passParamsArg = isLinux ? "\"$@\"" : "%*"; command = $"{command} {passParamsArg}"; // for Linux add header for bash script if (isLinux) { command = $"#!/bin/bash\n{command}"; } return $"{command}"; } } }