1.1.1Updated a month ago
#!/usr/bin/env -S deno run -A

import { Sort } from "$utils/sort_utils.ts";
import { IsValidVersionNumber } from "$utils/version_helpers.ts";

const published_viapak_versions = Deno.readDirSync('./packages/@viapak/viapak')
  .filter(e => e.isDirectory && IsValidVersionNumber(e.name))
  .map(e => e.name)
  .toArray()
  .sort(Sort.Version.Descending);

if(published_viapak_versions.length === 0) throw new Error('No Viapak versions have been published.')
const published_viapak_latest = published_viapak_versions[0];

Deno.writeTextFileSync('./pid', Deno.pid.toString());

Deno.copyFileSync(`./packages/@viapak/viapak/${published_viapak_latest}/deploy_latest.ts`, `./deploy_latest.ts`);
Deno.copyFileSync(`./packages/@viapak/viapak/${published_viapak_latest}/keep_running.ts`, `./keep_running.ts`);
Deno.copyFileSync(`./packages/@viapak/viapak/${published_viapak_latest}/legacy_imports.ts`, `./legacy_imports.ts`);
Deno.copyFileSync(`./packages/@viapak/viapak/${published_viapak_latest}/build.ts`, `./build.ts`);

// Fix imports to latest Viapak provider
const latest_deno_json_contents = Deno.readTextFileSync(`./packages/@viapak/viapak/${published_viapak_latest}/deno.json`);
const modified_deno_json_contents = latest_deno_json_contents
  // fix build script
    .replace(`"build": "deno run -A www/dev.ts build",`, `"build": "deno run -A packages/@viapak/viapak/${published_viapak_latest}/www/dev.ts build",`)
  // local imports to packages folders
    .replace(/("\W[^"]+":\s*")\.\/([^"]+",)/g, `$1./packages/@viapak/viapak/${published_viapak_latest}/$2`)
  ;

Deno.writeTextFileSync('deno.json', modified_deno_json_contents);

import(`./packages/@viapak/viapak/${published_viapak_latest}/main.ts`);