| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #!/usr/bin/env node
- import fs from "fs"
- import path from "path"
- import os from "os"
- import { fileURLToPath } from "url"
- const __dirname = path.dirname(fileURLToPath(import.meta.url))
- function main() {
- if (os.platform() !== "win32") {
- console.log("Non-Windows platform detected, skipping preinstall")
- return
- }
- console.log("Windows detected: Modifying package.json bin entry")
- // Read package.json
- const packageJsonPath = path.join(__dirname, "package.json")
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"))
- // Modify bin to point to .cmd file on Windows
- packageJson.bin = {
- opencode: "./bin/opencode.cmd",
- }
- // Write it back
- fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2))
- console.log("Updated package.json bin to use opencode.cmd")
- // Now you can also remove the Unix script if you want
- const unixScript = path.join(__dirname, "bin", "opencode")
- if (fs.existsSync(unixScript)) {
- console.log("Removing Unix shell script")
- fs.unlinkSync(unixScript)
- }
- }
- try {
- main()
- } catch (error) {
- console.error("Preinstall script error:", error.message)
- process.exit(0)
- }
|