createPlatformScript static method
File
createPlatformScript(
{ - required String unixContents,
- required String windowsContents,
- String? scriptPrefix,
- String? unixScriptInterpreter = "/bin/sh",
- bool setUnixPermissions = true,
- int? windowsCodePage = WindowsCodePage.utf8,
- WindowsScriptType windowsScriptType = WindowsScriptType.batch,
})
Implementation
static io.File createPlatformScript({
required String unixContents,
required String windowsContents,
String? scriptPrefix,
String? unixScriptInterpreter = "/bin/sh",
bool setUnixPermissions = true,
int? windowsCodePage = WindowsCodePage.utf8,
WindowsScriptType windowsScriptType = WindowsScriptType.batch,
}) {
final script = io.Directory.systemTemp.getUniqueFileSync(
prefix: scriptPrefix,
extension: io.Platform.isWindows ? windowsScriptType._extension : "sh",
);
if (io.Platform.isWindows) {
createWindowsScript(
file: script,
type: windowsScriptType,
windowsCodePage: windowsCodePage,
contents: windowsContents,
);
} else {
if (null != unixScriptInterpreter) {
unixContents = """
#! $unixScriptInterpreter
$unixContents
""";
}
script.writeAsStringSync(
unixContents,
flush: true,
mode: io.FileMode.writeOnly,
encoding: io.systemEncoding,
);
final chmod = ChmodCliTool();
if (setUnixPermissions && chmod.existsSync()) {
chmod.setPermissionsSync(
filepath: script.path,
owner: {read, write, execute},
group: {read, execute},
other: {read, execute},
);
}
}
return script;
}