switch to submodule
This commit is contained in:
parent
18255ce4cd
commit
572e484498
7 changed files with 7 additions and 100 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -1,10 +1,6 @@
|
||||||
# Node
|
# Node
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
||||||
# Milsko
|
|
||||||
deps/
|
|
||||||
*.tar.gz
|
|
||||||
|
|
||||||
# Build
|
# Build
|
||||||
build/
|
build/
|
||||||
dist/
|
dist/
|
||||||
|
|
|
||||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "deps/milsko"]
|
||||||
|
path = deps/milsko
|
||||||
|
url = https://forgejo.nishi.boats/pyrite-dev/milsko.git
|
||||||
1
bun.lock
1
bun.lock
|
|
@ -7,7 +7,6 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"node-addon-api": "^8.7.0",
|
"node-addon-api": "^8.7.0",
|
||||||
"node-gyp-build": "^4.8.4",
|
"node-gyp-build": "^4.8.4",
|
||||||
"tar": "^7.5.13",
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^25.6.0",
|
"@types/node": "^25.6.0",
|
||||||
|
|
|
||||||
1
deps/milsko
vendored
Submodule
1
deps/milsko
vendored
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 572c170cd6772e7ff633b6406b3eebbb57965bce
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
{
|
{
|
||||||
"name": "milsko",
|
"name": "milsko",
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
|
"upstream": "v1.0a",
|
||||||
"description": "Lightweight and cross-platform native GUI toolkit",
|
"description": "Lightweight and cross-platform native GUI toolkit",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"upstream": "v1.0a",
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"install": "node-gyp-build",
|
||||||
"bindgen": "node scripts/bindgen.js && prettier --write lib/",
|
"bindgen": "node scripts/bindgen.js && prettier --write lib/",
|
||||||
"download": "node scripts/download.js",
|
|
||||||
"install": "node scripts/install.js",
|
|
||||||
"update": "rimraf deps/milsko.tar.gz deps/milsko/ && node scripts/download.js"
|
"update": "rimraf deps/milsko.tar.gz deps/milsko/ && node scripts/download.js"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
@ -42,8 +41,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"node-addon-api": "^8.7.0",
|
"node-addon-api": "^8.7.0",
|
||||||
"node-gyp-build": "^4.8.4",
|
"node-gyp-build": "^4.8.4"
|
||||||
"tar": "^7.5.13"
|
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"README.md",
|
"README.md",
|
||||||
|
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
import { execSync } from "node:child_process";
|
|
||||||
import { createWriteStream, mkdirSync } from "node:fs";
|
|
||||||
import { createRequire } from "node:module";
|
|
||||||
import { join, resolve } from "node:path";
|
|
||||||
import { Readable } from "node:stream";
|
|
||||||
import { pipeline } from "node:stream/promises";
|
|
||||||
import { t, extract as tarExtract } from "tar";
|
|
||||||
|
|
||||||
const extractDir = resolve("deps");
|
|
||||||
const fileName = "milsko.tar.gz";
|
|
||||||
const source =
|
|
||||||
"https://forgejo.nishi.boats/api/v1/repos/pyrite-dev/milsko/tags";
|
|
||||||
|
|
||||||
const require = createRequire(import.meta.url);
|
|
||||||
const { upstream } = require("../package.json");
|
|
||||||
|
|
||||||
export async function download() {
|
|
||||||
console.log("[Mw] Fetching Milsko release tags from", source);
|
|
||||||
|
|
||||||
const response = await fetch(source);
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(
|
|
||||||
"Failed to fetch the Milsko repository tags, try running npm run install or npm run update again (" +
|
|
||||||
response.status +
|
|
||||||
")"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const tags = await response.json();
|
|
||||||
const match = tags.find((k) => k.name == upstream);
|
|
||||||
|
|
||||||
if (!match) {
|
|
||||||
throw new Error(
|
|
||||||
"Could not find a tag that matches the upstream version " + upstream
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const tarUrl = match["tarball_url"];
|
|
||||||
console.log("[Mw] Fetching tarball from " + tarUrl);
|
|
||||||
|
|
||||||
const tarball = await fetch(tarUrl);
|
|
||||||
|
|
||||||
const filePath = join(extractDir, fileName);
|
|
||||||
mkdirSync(extractDir, { recursive: true }); // mkdir -p
|
|
||||||
|
|
||||||
const tarStream = Readable.fromWeb(tarball.body);
|
|
||||||
const fileStream = createWriteStream(filePath);
|
|
||||||
|
|
||||||
await pipeline(tarStream, fileStream);
|
|
||||||
await tarExtract({
|
|
||||||
file: filePath,
|
|
||||||
cwd: extractDir
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log("[Mw] Milsko library successfully installed!");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (import.meta.main)
|
|
||||||
download();
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
import { execSync } from "node:child_process"
|
|
||||||
import { createRequire } from "node:module";
|
|
||||||
import { download } from "./download";
|
|
||||||
|
|
||||||
const require = createRequire(import.meta.url);
|
|
||||||
const forceBuild = process.env["npm_config_build_from_source"] == "true";
|
|
||||||
|
|
||||||
function hasPrebuilt() {
|
|
||||||
let prebuilt = false;
|
|
||||||
|
|
||||||
try {
|
|
||||||
require("node-gyp-build")("..");
|
|
||||||
prebuilt = true;
|
|
||||||
} catch (error) {
|
|
||||||
prebuilt = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return prebuilt;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function install() {
|
|
||||||
console.log("[Mw] Downloading Milsko library...");
|
|
||||||
await download();
|
|
||||||
|
|
||||||
console.log("[Mw] Building from source...");
|
|
||||||
execSync("npx node-gyp rebuild", { stdio: "inherit" });
|
|
||||||
}
|
|
||||||
|
|
||||||
if (forceBuild || !hasPrebuilt()) {
|
|
||||||
install();
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue