diff options
Diffstat (limited to 'nixpkgs/pkgs/development/web/deno/update/update.ts')
-rwxr-xr-x | nixpkgs/pkgs/development/web/deno/update/update.ts | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/web/deno/update/update.ts b/nixpkgs/pkgs/development/web/deno/update/update.ts new file mode 100755 index 000000000000..18d451480137 --- /dev/null +++ b/nixpkgs/pkgs/development/web/deno/update/update.ts @@ -0,0 +1,50 @@ +#!/usr/bin/env nix-shell +/* +#!nix-shell -i "deno run --allow-net --allow-run --allow-read --allow-write" -p deno git nix-prefetch +*/ +import { + commit, + getExistingVersion, + getLatestVersion, + logger, +} from "./common.ts"; +import { Architecture, updateDeps } from "./deps.ts"; +import { updateSrc } from "./src.ts"; + +const log = logger("update"); +// TODO: Getting current file position to more-safely point to nixpkgs root +const nixpkgs = Deno.cwd(); +// TODO: Read values from default.nix +const owner = "denoland"; +const repo = "deno"; +const denoDir = `${nixpkgs}/pkgs/development/web/${repo}`; +const src = `${denoDir}/default.nix`; +const deps = `${denoDir}/deps.nix`; +const architectures: Architecture[] = [ + { nix: "x86_64-linux", rust: "x86_64-unknown-linux-gnu" }, + { nix: "aarch64-linux", rust: "aarch64-unknown-linux-gnu" }, + { nix: "x86_64-darwin", rust: "x86_64-apple-darwin" }, +]; + +log("Updating deno"); + +log("Getting latest deno version"); +const version = await getLatestVersion(owner, repo); +const existingVersion = await getExistingVersion(src); +const trimVersion = version.substr(1); // Strip v from v0.0.0 +log("Latest version: ", trimVersion); +log("Extracted version:", existingVersion); +if (trimVersion === existingVersion) { + log("Version already matches latest, skipping..."); + Deno.exit(0); +} + +const tasks = [ + updateSrc(src, nixpkgs, version), + updateDeps(deps, owner, repo, version, architectures), +]; +await Promise.all(tasks); +log("Updating deno complete"); +log("Commiting"); +await commit(repo, existingVersion, trimVersion, [src, deps]); +log("Done"); |