summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2024-03-02 17:28:34 +0000
committerdakkar <dakkar@thenautilus.net>2024-03-02 17:28:34 +0000
commit23f476dbf32ef9a2fc7d2ed7aab9ce706a2409d0 (patch)
tree0b9e79c2f18f4a206811561fa255f2510f60c175 /scripts
parentmerge: Add missing IMPORTANT_NOTES.md from Sharkey/OldJoinSharkey (!443) (diff)
parentmerge: put back the readme (!447) (diff)
downloadsharkey-23f476dbf32ef9a2fc7d2ed7aab9ce706a2409d0.tar.gz
sharkey-23f476dbf32ef9a2fc7d2ed7aab9ce706a2409d0.tar.bz2
sharkey-23f476dbf32ef9a2fc7d2ed7aab9ce706a2409d0.zip
Merge branch 'develop' into release/2024.3.1
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build-assets.mjs27
-rw-r--r--scripts/build-pre.js2
-rw-r--r--scripts/clean-all.js11
-rw-r--r--scripts/clean.js5
-rw-r--r--scripts/dev.mjs30
-rw-r--r--scripts/tarball.mjs32
6 files changed, 91 insertions, 16 deletions
diff --git a/scripts/build-assets.mjs b/scripts/build-assets.mjs
index 22f0871caa..7d0ab2fc80 100644
--- a/scripts/build-assets.mjs
+++ b/scripts/build-assets.mjs
@@ -1,20 +1,34 @@
/*
- * SPDX-FileCopyrightText: syuilo and other misskey contributors
+ * SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
import * as fs from 'node:fs/promises';
import * as path from 'node:path';
+import { fileURLToPath } from 'node:url';
import cssnano from 'cssnano';
+import * as yaml from 'js-yaml';
import postcss from 'postcss';
import * as terser from 'terser';
import { build as buildLocales } from '../locales/index.js';
import generateDTS from '../locales/generateDTS.js';
import meta from '../package.json' assert { type: "json" };
+import buildTarball from './tarball.mjs';
+
+const configDir = fileURLToPath(new URL('../.config', import.meta.url));
+const configPath = process.env.MISSKEY_CONFIG_YML
+ ? path.resolve(configDir, process.env.MISSKEY_CONFIG_YML)
+ : process.env.NODE_ENV === 'test'
+ ? path.resolve(configDir, 'test.yml')
+ : path.resolve(configDir, 'default.yml');
let locales = buildLocales();
+async function loadConfig() {
+ return fs.readFile(configPath, 'utf-8').then(data => yaml.load(data)).catch(() => null);
+}
+
async function copyFrontendFonts() {
await fs.cp('./packages/frontend/node_modules/three/examples/fonts', './built/_frontend_dist_/fonts', { dereference: true, recursive: true });
}
@@ -35,13 +49,6 @@ async function copyFrontendLocales() {
}
}
-async function copyFrontendShikiAssets() {
- await fs.cp('./packages/frontend/node_modules/shiki/dist', './built/_frontend_dist_/shiki/dist', { dereference: true, recursive: true });
- await fs.cp('./packages/frontend/node_modules/shiki/languages', './built/_frontend_dist_/shiki/languages', { dereference: true, recursive: true });
- await fs.cp('./packages/frontend/node_modules/aiscript-vscode/aiscript/syntaxes', './built/_frontend_dist_/shiki/languages', { dereference: true, recursive: true });
- await fs.cp('./packages/frontend/node_modules/shiki/themes', './built/_frontend_dist_/shiki/themes', { dereference: true, recursive: true });
-}
-
async function copyBackendViews() {
await fs.cp('./packages/backend/src/server/web/views', './packages/backend/built/server/web/views', { recursive: true });
}
@@ -81,16 +88,16 @@ async function build() {
copyFrontendFonts(),
copyFrontendTablerIcons(),
copyFrontendLocales(),
- copyFrontendShikiAssets(),
copyBackendViews(),
buildBackendScript(),
buildBackendStyle(),
+ loadConfig().then(config => config?.publishTarballInsteadOfProvideRepositoryUrl && buildTarball()),
]);
}
await build();
-if (process.argv.includes("--watch")) {
+if (process.argv.includes('--watch')) {
const watcher = fs.watch('./locales');
for await (const event of watcher) {
const filename = event.filename?.replaceAll('\\', '/');
diff --git a/scripts/build-pre.js b/scripts/build-pre.js
index ed75aa6553..a90d53c75d 100644
--- a/scripts/build-pre.js
+++ b/scripts/build-pre.js
@@ -1,5 +1,5 @@
/*
- * SPDX-FileCopyrightText: syuilo and other misskey contributors
+ * SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
diff --git a/scripts/clean-all.js b/scripts/clean-all.js
index e4f5acae0d..3df2f2ceff 100644
--- a/scripts/clean-all.js
+++ b/scripts/clean-all.js
@@ -1,5 +1,5 @@
/*
- * SPDX-FileCopyrightText: syuilo and other misskey contributors
+ * SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
@@ -17,6 +17,15 @@ const fs = require('fs');
fs.rmSync(__dirname + '/../packages/sw/node_modules', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/megalodon/lib', { recursive: true, force: true });
+
+ fs.rmSync(__dirname + '/../packages/misskey-js/built', { recursive: true, force: true });
+ fs.rmSync(__dirname + '/../packages/misskey-js/node_modules', { recursive: true, force: true });
+
+ fs.rmSync(__dirname + '/../packages/misskey-reversi/built', { recursive: true, force: true });
+ fs.rmSync(__dirname + '/../packages/misskey-reversi/node_modules', { recursive: true, force: true });
+
+ fs.rmSync(__dirname + '/../packages/misskey-bubble-game/built', { recursive: true, force: true });
+ fs.rmSync(__dirname + '/../packages/misskey-bubble-game/node_modules', { recursive: true, force: true });
fs.rmSync(__dirname + '/../built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../node_modules', { recursive: true, force: true });
diff --git a/scripts/clean.js b/scripts/clean.js
index df1d33888d..6d8182fec2 100644
--- a/scripts/clean.js
+++ b/scripts/clean.js
@@ -1,5 +1,5 @@
/*
- * SPDX-FileCopyrightText: syuilo and other misskey contributors
+ * SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
@@ -9,6 +9,9 @@ const fs = require('fs');
fs.rmSync(__dirname + '/../packages/backend/built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/frontend/built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/sw/built', { recursive: true, force: true });
+ fs.rmSync(__dirname + '/../packages/misskey-js/built', { recursive: true, force: true });
+ fs.rmSync(__dirname + '/../packages/misskey-reversi/built', { recursive: true, force: true });
+ fs.rmSync(__dirname + '/../packages/misskey-bubble-game/built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/megalodon/lib', { recursive: true, force: true });
})();
diff --git a/scripts/dev.mjs b/scripts/dev.mjs
index 43d9496f3c..e00b2e254d 100644
--- a/scripts/dev.mjs
+++ b/scripts/dev.mjs
@@ -1,5 +1,5 @@
/*
- * SPDX-FileCopyrightText: syuilo and other misskey contributors
+ * SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
@@ -28,7 +28,7 @@ await execa('pnpm', ['build-assets'], {
stderr: process.stderr,
});
-await execa('pnpm', ['--filter', 'misskey-js', 'build'], {
+await execa('pnpm', ['--filter', 'misskey-js', 'ts'], {
cwd: _dirname + '/../',
stdout: process.stdout,
stderr: process.stderr,
@@ -40,6 +40,18 @@ await execa("pnpm", ['--filter', 'megalodon', 'build'], {
stderr: process.stderr,
});
+await execa('pnpm', ['--filter', 'misskey-reversi', 'build:tsc'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
+await execa('pnpm', ['--filter', 'misskey-bubble-game', 'build:tsc'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
execa('pnpm', ['build-pre', '--watch'], {
cwd: _dirname + '/../',
stdout: process.stdout,
@@ -58,7 +70,7 @@ execa('pnpm', ['--filter', 'backend', 'dev'], {
stderr: process.stderr,
});
-execa('pnpm', ['--filter', 'frontend', 'dev'], {
+execa('pnpm', ['--filter', 'frontend', process.env.MK_DEV_PREFER === 'backend' ? 'watch' : 'dev'], {
cwd: _dirname + '/../',
stdout: process.stdout,
stderr: process.stderr,
@@ -75,3 +87,15 @@ execa('pnpm', ['--filter', 'misskey-js', 'watch'], {
stdout: process.stdout,
stderr: process.stderr,
});
+
+execa('pnpm', ['--filter', 'misskey-reversi', 'watch'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
+execa('pnpm', ['--filter', 'misskey-bubble-game', 'watch'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
diff --git a/scripts/tarball.mjs b/scripts/tarball.mjs
new file mode 100644
index 0000000000..fbb833d94e
--- /dev/null
+++ b/scripts/tarball.mjs
@@ -0,0 +1,32 @@
+import { createWriteStream } from 'node:fs';
+import { mkdir } from 'node:fs/promises';
+import { resolve } from 'node:path';
+import { fileURLToPath } from 'node:url';
+import glob from 'fast-glob';
+import walk from 'ignore-walk';
+import Pack from 'tar/lib/pack.js';
+import meta from '../package.json' assert { type: "json" };
+
+const cwd = fileURLToPath(new URL('..', import.meta.url));
+const ignore = [
+ '**/.git/**/*',
+ '**/*ignore',
+ '**/.gitmodules',
+ // Exclude files you don't want to include in the tarball here
+];
+
+export default async function build() {
+ const mkdirPromise = mkdir(resolve(cwd, 'built', 'tarball'), { recursive: true });
+ const pack = new Pack({ cwd, gzip: true });
+ const patterns = await walk({ path: cwd, ignoreFiles: ['.gitignore'] });
+
+ for await (const entry of glob.stream(patterns, { cwd, ignore, dot: true })) {
+ pack.add(entry);
+ }
+
+ pack.end();
+
+ await mkdirPromise;
+
+ pack.pipe(createWriteStream(resolve(cwd, 'built', 'tarball', `sharkey-${meta.version}.tar.gz`)));
+}