Something went wrong. Try again.
CLI for Linear via GraphQL API
Something went wrong. Try again.
1.9 kB · 72 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#!/usr/bin/env bun/** * Custom version script that: * 1. Runs changeset version (bumps version, updates changelog) * 2. Updates schema metadata * 3. Builds binaries * 4. Computes hashes * 5. Updates flake.nix */import { $ } from "bun";
type PackageJson = { version: string;};
await $`bunx changeset version`;
const pkg = (await Bun.file("package.json").json()) as PackageJson;const version = pkg.version;console.log(`Version: ${version}`);
const schemaUrl = `https://raw.githubusercontent.com/aliou/linear-cli/v${version}/schemas/config.schema.json`;const schema = (await Bun.file("schemas/config.schema.json").json()) as Record< string, unknown>;schema.$id = schemaUrl;await Bun.write( "schemas/config.schema.json", `${JSON.stringify(schema, null, 2)}\n`,);console.log("Updated schemas/config.schema.json");
console.log("Building binaries...");await $`bun run build`;
console.log("Computing hashes...");const darwinArmHash = ( await $`nix hash file --sri dist/linear-darwin-arm64`.text()).trim();const linuxArmHash = ( await $`nix hash file --sri dist/linear-linux-arm64`.text()).trim();const linuxX64Hash = ( await $`nix hash file --sri dist/linear-linux-x64`.text()).trim();
console.log(`Darwin ARM64 hash: ${darwinArmHash}`);console.log(`Linux ARM64 hash: ${linuxArmHash}`);console.log(`Linux x64 hash: ${linuxX64Hash}`);
let flake = await Bun.file("flake.nix").text();flake = flake.replace(/version = "[^"]*";/, `version = "${version}";`);flake = flake.replace( /("aarch64-darwin"[\s\S]*?hash = )"sha256-[^"]*"/, `$1"${darwinArmHash}"`,);flake = flake.replace( /("aarch64-linux"[\s\S]*?hash = )"sha256-[^"]*"/, `$1"${linuxArmHash}"`,);flake = flake.replace( /("x86_64-linux"[\s\S]*?hash = )"sha256-[^"]*"/, `$1"${linuxX64Hash}"`,);
await Bun.write("flake.nix", flake);console.log("Updated flake.nix");
await $`rm -rf dist`;
console.log(`Ready to release v${version}`);