* feat: Start work on package api * feat: Browser Context Controller * feat: Add packages to cluster metadata feat: Change structure of Package * 🐛 fix: format * 🔨 feat: Add more functions wrapping around Modrinth * 🔨 feat: Start working on browser frontend * feat: BrowserPackage work + markdown support * 🐛 fix: fmt Signed-off-by: Pauline <git@ethanlibs.co> * 🚧 wip: h Signed-off-by: Pauline <git@ethanlibs.co> * feat: Download button for packages for suitable clusters + tweaks * 🚧 wip: markdown and stuff Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: some patches Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: remove react bloat Signed-off-by: Pauline <git@ethanlibs.co> * 🔨 chore(pkg/infer): try to reduce reused code Signed-off-by: Pauline <git@ethanlibs.co> * 🔨 chore: bump deps Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: markdown innerhtml Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: h Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: tweak Signed-off-by: Pauline <git@ethanlibs.co> * 🚧 wip: idk Signed-off-by: Pauline <git@ethanlibs.co> * fix: Gamemode compile error chore: Add missing and remove unused libraries feat: usePreventLeave hook feat: ClusterOverview edit mode continues with navigation (assuming there was a navigation attempt) after pressing Yes or No for save * feat: Add reload clusters button on home page * feat: More information provided to BrowserPackage * fix: Minor fixes (Navbar isActive, Markdown click prevention, Markdown list styling) * 🐛 fix: h Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: highlighting Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: forge modern Signed-off-by: Pauline <git@ethanlibs.co> * 🔨 chore: bump deps Signed-off-by: Pauline <git@ethanlibs.co> * fix: Markdown-it issue + Added promptOpener hook for Markdown links * feat: Made BrowserPackage sidebar sticky * refactor: Package system (not yet in a working state) * 🚧 wip: bump deps temp Signed-off-by: Pauline <git@ethanlibs.co> * feat: Added a package manager * ✨ feature: start prisma work, but it doesnt break anything so we can keep it until its done. also fix some stuff Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: pushing Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: linting Signed-off-by: Pauline <git@ethanlibs.co> * ✨ feature: start ingress integration Signed-off-by: Pauline <git@ethanlibs.co> * feat: Package Manager should work now 👍 * fix: Package manager tracing spam * feat: Added tauri commands for cluster packages format: Auto formatted frontend + backend * 🐛 fix: tmp Signed-off-by: Pauline <git@ethanlibs.co> * 🔨 chore: format Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: specta extension Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: github actions Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: alias Signed-off-by: Pauline <git@ethanlibs.co> * chore: Some tweaks and fixes * chore: Rebase + gitignore bindings.ts * chore: Remove bindings.ts * 🐛 fix: migrate Signed-off-by: Pauline <git@ethanlibs.co> * 🚧 wip: not sure Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: finalize prisma init schema Signed-off-by: Pauline <git@ethanlibs.co> * 🔨 chore: format Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: bump deps Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: system deps Signed-off-by: Pauline <git@ethanlibs.co> * fix: solid-router navigation issue * feat: Added new BrowserMain page * feat: Tweaks + new package list view * 🐛 fix: bump + format (todo: tauri2, etc) Signed-off-by: Pauline <git@ethanlibs.co> * 🐛 fix: devx (fixes #126) Signed-off-by: Pauline <git@ethanlibs.co> * 🔨 chore: migrate to consola Signed-off-by: Pauline <git@ethanlibs.co> --------- Signed-off-by: Pauline <git@ethanlibs.co> Co-authored-by: LynithDev <61880709+LynithDev@users.noreply.github.com>
80 lines
2.3 KiB
TypeScript
80 lines
2.3 KiB
TypeScript
import fs from 'node:fs';
|
|
import { readFile, writeFile } from 'node:fs/promises';
|
|
import { join, resolve } from 'pathe';
|
|
import mustache from 'mustache';
|
|
import consola from 'consola';
|
|
import { checkEnvironment, which } from './utils';
|
|
import { getTriple } from './utils/triple';
|
|
|
|
const env = checkEnvironment(import.meta);
|
|
const triple = getTriple();
|
|
const PREPARE_LOCK_VERSION = '1';
|
|
const prepareLockPath = resolve(join(env.__deps, 'prepare_lock'));
|
|
|
|
if ((await Promise.all([which`cargo`, which`rustc`, which`pnpm`])).some(f => !f))
|
|
consola.error(
|
|
`
|
|
Basic OneLauncher dependencies missing!
|
|
Ensure you have rust and pnpm installed:
|
|
https://rustup.rs
|
|
https://pnpm.io
|
|
|
|
And that you have run the setup script:
|
|
packages/scripts/${triple[0] === 'Windows_NT' ? 'setup.ps1' : 'setup.sh'}
|
|
`,
|
|
);
|
|
|
|
consola.info('generating cargo configuration file.');
|
|
|
|
if (fs.existsSync(prepareLockPath))
|
|
if (fs.readFileSync(prepareLockPath, 'utf-8') === PREPARE_LOCK_VERSION)
|
|
env.__exit(0);
|
|
|
|
interface ConfigStore {
|
|
isWin: boolean;
|
|
isMacOS: boolean;
|
|
isLinux: boolean;
|
|
hasLLD: boolean | { linker: string };
|
|
}
|
|
|
|
const configStore: ConfigStore = {
|
|
isWin: false,
|
|
isMacOS: false,
|
|
isLinux: false,
|
|
hasLLD: false,
|
|
};
|
|
|
|
try {
|
|
switch (triple[0]) {
|
|
case 'Linux':
|
|
configStore.isLinux = true;
|
|
if (await which`clang`)
|
|
if (await which`mold`)
|
|
configStore.hasLLD = { linker: 'mold' };
|
|
else if (await which`lld`)
|
|
configStore.hasLLD = { linker: 'lld' };
|
|
break;
|
|
case 'Darwin':
|
|
configStore.isMacOS = true;
|
|
break;
|
|
case 'Windows_NT':
|
|
configStore.isWin = true;
|
|
configStore.hasLLD = await which`lld-link`;
|
|
break;
|
|
}
|
|
|
|
const template = await readFile(join(env.__root, '.cargo', 'config.toml.mustache'), { encoding: 'utf8' });
|
|
const rendered = mustache.render(template, configStore).replace(/\n{2,}/g, '\n');
|
|
await writeFile(join(env.__root, '.cargo', 'config.toml'), rendered, { mode: 0o751, flag: 'w+', encoding: 'utf-8' });
|
|
await writeFile(join(env.__deps, 'prepare_lock'), PREPARE_LOCK_VERSION, 'utf-8');
|
|
}
|
|
catch (error) {
|
|
consola.error(`
|
|
failed to generate .config/cargo.toml.
|
|
this is probably a bug, please open an issue with system info at
|
|
https://github.com/polyfrost/onelauncher/issues/new/choose
|
|
`);
|
|
if (env.__debug)
|
|
consola.error(error);
|
|
env.__exit(1);
|
|
}
|