summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMarie <Marie@kaifa.ch>2023-12-23 02:09:23 +0100
committerMarie <Marie@kaifa.ch>2023-12-23 02:09:23 +0100
commit5db583a3eb61d50de14d875ebf7ecef20490e313 (patch)
tree783dd43d2ac660c32e745a4485d499e9ddc43324 /scripts
parentadd: Custom MOTDs (diff)
parentUpdate CHANGELOG.md (diff)
downloadsharkey-5db583a3eb61d50de14d875ebf7ecef20490e313.tar.gz
sharkey-5db583a3eb61d50de14d875ebf7ecef20490e313.tar.bz2
sharkey-5db583a3eb61d50de14d875ebf7ecef20490e313.zip
merge: upstream
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build-assets.mjs19
-rw-r--r--scripts/build-pre.js23
-rw-r--r--scripts/dev.mjs42
3 files changed, 45 insertions, 39 deletions
diff --git a/scripts/build-assets.mjs b/scripts/build-assets.mjs
index bffc1ddbdf..22f0871caa 100644
--- a/scripts/build-assets.mjs
+++ b/scripts/build-assets.mjs
@@ -9,10 +9,12 @@ import cssnano from 'cssnano';
import postcss from 'postcss';
import * as terser from 'terser';
-import locales from '../locales/index.js';
+import { build as buildLocales } from '../locales/index.js';
import generateDTS from '../locales/generateDTS.js';
import meta from '../package.json' assert { type: "json" };
+let locales = buildLocales();
+
async function copyFrontendFonts() {
await fs.cp('./packages/frontend/node_modules/three/examples/fonts', './built/_frontend_dist_/fonts', { dereference: true, recursive: true });
}
@@ -89,10 +91,13 @@ async function build() {
await build();
if (process.argv.includes("--watch")) {
- const watcher = fs.watch('./packages', { recursive: true });
- for await (const event of watcher) {
- if (/^[a-z]+\/src/.test(event.filename)) {
- await build();
- }
- }
+ const watcher = fs.watch('./locales');
+ for await (const event of watcher) {
+ const filename = event.filename?.replaceAll('\\', '/');
+ if (/^[a-z]+-[A-Z]+\.yml/.test(filename)) {
+ console.log(`update ${filename} ...`)
+ locales = buildLocales();
+ await copyFrontendLocales()
+ }
+ }
}
diff --git a/scripts/build-pre.js b/scripts/build-pre.js
index bf3e355b5b..ed75aa6553 100644
--- a/scripts/build-pre.js
+++ b/scripts/build-pre.js
@@ -4,7 +4,24 @@
*/
const fs = require('fs');
-const meta = require('../package.json');
+const packageJsonPath = __dirname + '/../package.json'
-fs.mkdirSync(__dirname + '/../built', { recursive: true });
-fs.writeFileSync(__dirname + '/../built/meta.json', JSON.stringify({ version: meta.version }), 'utf-8');
+function build() {
+ try {
+ const json = fs.readFileSync(packageJsonPath, 'utf-8')
+ const meta = JSON.parse(json);
+ fs.mkdirSync(__dirname + '/../built', { recursive: true });
+ fs.writeFileSync(__dirname + '/../built/meta.json', JSON.stringify({ version: meta.version }), 'utf-8');
+ } catch (e) {
+ console.error(e)
+ }
+}
+
+build();
+
+if (process.argv.includes("--watch")) {
+ fs.watch(packageJsonPath, (event, filename) => {
+ console.log(`update ${filename} ...`)
+ build()
+ })
+}
diff --git a/scripts/dev.mjs b/scripts/dev.mjs
index 52f8d82b05..43d9496f3c 100644
--- a/scripts/dev.mjs
+++ b/scripts/dev.mjs
@@ -3,7 +3,6 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import fs from 'node:fs';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
import { execa } from 'execa';
@@ -11,8 +10,6 @@ import { execa } from 'execa';
const _filename = fileURLToPath(import.meta.url);
const _dirname = dirname(_filename);
-const vitePort = process.env.VITE_PORT ? ["--strictPort", "--port", process.env.VITE_PORT] : ["--strictPort"];
-
await execa('pnpm', ['clean'], {
cwd: _dirname + '/../',
stdout: process.stdout,
@@ -43,19 +40,25 @@ await execa("pnpm", ['--filter', 'megalodon', 'build'], {
stderr: process.stderr,
});
+execa('pnpm', ['build-pre', '--watch'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
execa('pnpm', ['build-assets', '--watch'], {
cwd: _dirname + '/../',
stdout: process.stdout,
stderr: process.stderr,
});
-execa('pnpm', ['--filter', 'backend', 'watch'], {
+execa('pnpm', ['--filter', 'backend', 'dev'], {
cwd: _dirname + '/../',
stdout: process.stdout,
stderr: process.stderr,
});
-execa('pnpm', ['--filter', 'frontend', 'watch', ...vitePort], {
+execa('pnpm', ['--filter', 'frontend', 'dev'], {
cwd: _dirname + '/../',
stdout: process.stdout,
stderr: process.stderr,
@@ -67,27 +70,8 @@ execa('pnpm', ['--filter', 'sw', 'watch'], {
stderr: process.stderr,
});
-const start = async () => {
- try {
- const stat = fs.statSync(_dirname + '/../packages/backend/built/boot/entry.js');
- if (!stat) throw new Error('not exist yet');
- if (stat.size === 0) throw new Error('not built yet');
-
- const subprocess = await execa('pnpm', ['start'], {
- cwd: _dirname + '/../',
- stdout: process.stdout,
- stderr: process.stderr,
- });
-
- // なぜかworkerだけが終了してmasterが残るのでその対策
- process.on('SIGINT', () => {
- subprocess.kill('SIGINT');
- process.exit(0);
- });
- } catch (e) {
- await new Promise(resolve => setTimeout(resolve, 3000));
- start();
- }
-};
-
-start();
+execa('pnpm', ['--filter', 'misskey-js', 'watch'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});