| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/usr/bin/env bun
- import { $ } from "bun"
- import pkg from "../package.json"
- const dry = process.argv.includes("--dry")
- const version = `0.0.0-${new Date().toISOString().slice(0, 16).replace(/[-:T]/g, "")}`
- const GOARCH: Record<string, string> = {
- arm64: "arm64",
- x64: "amd64",
- }
- const targets = [
- ["linux", "arm64"],
- ["linux", "x64"],
- ["darwin", "x64"],
- ["darwin", "arm64"],
- ["windows", "x64"],
- ]
- await $`rm -rf dist`
- const optionalDependencies: Record<string, string> = {}
- for (const [os, arch] of targets) {
- console.log(`building ${os}-${arch}`)
- const name = `${pkg.name}-${os}-${arch}`
- await $`mkdir -p dist/${name}/bin`
- await $`GOOS=${os} GOARCH=${GOARCH[arch]} go build -ldflags="-s -w -X main.Version=${version}" -o ../opencode/dist/${name}/bin/tui ../tui/cmd/opencode/main.go`.cwd(
- "../tui",
- )
- await $`bun build --define OPENCODE_VERSION="'${version}'" --compile --minify --target=bun-${os}-${arch} --outfile=dist/${name}/bin/opencode ./src/index.ts ./dist/${name}/bin/tui`
- await $`rm -rf ./dist/${name}/bin/tui`
- await Bun.file(`dist/${name}/package.json`).write(
- JSON.stringify(
- {
- name,
- version,
- os: [os === "windows" ? "win32" : os],
- cpu: [arch],
- },
- null,
- 2,
- ),
- )
- if (!dry) await $`cd dist/${name} && npm publish --access public --tag latest`
- optionalDependencies[name] = version
- }
- await $`mkdir -p ./dist/${pkg.name}`
- await $`cp -r ./bin ./dist/${pkg.name}/bin`
- await $`cp ./script/postinstall.js ./dist/${pkg.name}/postinstall.js`
- await Bun.file(`./dist/${pkg.name}/package.json`).write(
- JSON.stringify(
- {
- name: pkg.name + "-ai",
- bin: {
- [pkg.name]: `./bin/${pkg.name}`,
- },
- scripts: {
- postinstall: "node ./postinstall.js",
- },
- version,
- optionalDependencies,
- },
- null,
- 2,
- ),
- )
- if (!dry)
- await $`cd ./dist/${pkg.name} && npm publish --access public --tag latest`
|