feat: Windows .bat launcher for codewhale (v2, rebased + review fixes) (#1861)
* fix: Windows .bat launcher with correct JS escaping and codewhale rebrand * fix: complete Windows bat release asset handling --------- Co-authored-by: cy2311 <cy2311@users.noreply.github.com> Co-authored-by: Hunter B <hmbown@gmail.com>
This commit is contained in:
@@ -10,6 +10,9 @@ const {
|
||||
detectBinaryNames,
|
||||
} = require("../../npm/codewhale/scripts/artifacts");
|
||||
|
||||
const WINDOWS_LAUNCHER = "codewhale.bat";
|
||||
const WINDOWS_CLI_ASSET = "codewhale-windows-x64.exe";
|
||||
|
||||
async function sha256(filePath) {
|
||||
const content = await fs.readFile(filePath);
|
||||
return crypto.createHash("sha256").update(content).digest("hex");
|
||||
@@ -41,6 +44,9 @@ async function main() {
|
||||
|
||||
if (prepareAllAssets) {
|
||||
for (const assetName of allAssetNames()) {
|
||||
if (assetName === WINDOWS_LAUNCHER) {
|
||||
continue;
|
||||
}
|
||||
if (assets.some((asset) => asset.target === assetName)) {
|
||||
continue;
|
||||
}
|
||||
@@ -62,6 +68,25 @@ async function main() {
|
||||
manifestLines.push(`${await sha256(outputPath)} ${asset.target}`);
|
||||
}
|
||||
|
||||
if (assets.some((asset) => asset.target === WINDOWS_CLI_ASSET)) {
|
||||
const batContent = [
|
||||
"@echo off",
|
||||
"where wt >nul 2>nul",
|
||||
"set NO_ANIMATIONS=1",
|
||||
'if "%ERRORLEVEL%"=="0" (',
|
||||
' wt --title CodeWhale cmd /k "%~dp0codewhale-windows-x64.exe"',
|
||||
") else (",
|
||||
' "%~dp0codewhale-windows-x64.exe"',
|
||||
")",
|
||||
"",
|
||||
].join("\r\n");
|
||||
const batPath = path.join(outputDir, WINDOWS_LAUNCHER);
|
||||
await fs.writeFile(batPath, batContent, "utf8");
|
||||
const batHash = await sha256(batPath);
|
||||
manifestLines.push(`${batHash} ${WINDOWS_LAUNCHER}`);
|
||||
console.log(`Generated ${batPath}`);
|
||||
}
|
||||
|
||||
manifestLines.sort();
|
||||
const manifestPath = path.join(outputDir, CHECKSUM_MANIFEST);
|
||||
await fs.writeFile(manifestPath, `${manifestLines.join("\n")}\n`, "utf8");
|
||||
|
||||
Reference in New Issue
Block a user