1.1.1•Updated 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`);