Asset dev fixes (#53)

* Use seed DB

* Ignore dev_assets

* Persist
This commit is contained in:
Louis Knight-Webb
2025-07-02 19:35:30 +01:00
committed by GitHub
parent fcaf99ebf6
commit 1b1e186a15
5 changed files with 33 additions and 8 deletions

4
.gitignore vendored
View File

@@ -77,4 +77,6 @@ npx-cli/dist
backend/db.sqlite backend/db.sqlite
# Development ports file # Development ports file
.dev-ports.json .dev-ports.json
dev_assets

View File

@@ -3,20 +3,20 @@
"version": "0.0.32", "version": "0.0.32",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "export FRONTEND_PORT=$(node scripts/manage-dev-ports.js frontend) && export BACKEND_PORT=$(node scripts/manage-dev-ports.js backend) && concurrently \"cargo watch -w backend -x 'run --manifest-path backend/Cargo.toml'\" \"npm run frontend:dev\"", "dev": "export FRONTEND_PORT=$(node scripts/setup-dev-environment.js frontend) && export BACKEND_PORT=$(node scripts/setup-dev-environment.js backend) && concurrently \"cargo watch -w backend -x 'run --manifest-path backend/Cargo.toml'\" \"npm run frontend:dev\"",
"build": "npm run frontend:build && cargo build --release --manifest-path backend/Cargo.toml && cargo build --release --bin mcp_task_server --manifest-path backend/Cargo.toml", "build": "npm run frontend:build && cargo build --release --manifest-path backend/Cargo.toml && cargo build --release --bin mcp_task_server --manifest-path backend/Cargo.toml",
"build:single": "npm run frontend:build && cargo build --release --manifest-path backend/Cargo.toml", "build:single": "npm run frontend:build && cargo build --release --manifest-path backend/Cargo.toml",
"build:npm": "./build-npm-package.sh", "build:npm": "./build-npm-package.sh",
"test:npm": "./test-npm-package.sh", "test:npm": "./test-npm-package.sh",
"frontend:dev": "cd frontend && npm run dev -- --port ${FRONTEND_PORT:-3000} --open", "frontend:dev": "cd frontend && npm run dev -- --port ${FRONTEND_PORT:-3000} --open",
"frontend:build": "cd frontend && npm run build", "frontend:build": "cd frontend && npm run build",
"backend:dev": "BACKEND_PORT=$(node scripts/manage-dev-ports.js backend) cargo watch -w backend -x 'run --manifest-path backend/Cargo.toml'", "backend:dev": "BACKEND_PORT=$(node scripts/setup-dev-environment.js backend) cargo watch -w backend -x 'run --manifest-path backend/Cargo.toml'",
"backend:build": "cargo build --release --manifest-path backend/Cargo.toml", "backend:build": "cargo build --release --manifest-path backend/Cargo.toml",
"backend:run": "cargo run --manifest-path backend/Cargo.toml", "backend:run": "cargo run --manifest-path backend/Cargo.toml",
"backend:test": "cargo test --lib", "backend:test": "cargo test --lib",
"generate-types": "cd backend && cargo run --bin generate_types", "generate-types": "cd backend && cargo run --bin generate_types",
"prepare-db": "node scripts/prepare-db.js", "prepare-db": "node scripts/prepare-db.js",
"dev:clear-ports": "node scripts/manage-dev-ports.js clear" "dev:clear-ports": "node scripts/setup-dev-environment.js clear"
}, },
"devDependencies": { "devDependencies": {
"concurrently": "^8.2.2", "concurrently": "^8.2.2",

View File

@@ -5,6 +5,8 @@ const path = require("path");
const net = require("net"); const net = require("net");
const PORTS_FILE = path.join(__dirname, "..", ".dev-ports.json"); const PORTS_FILE = path.join(__dirname, "..", ".dev-ports.json");
const DEV_ASSETS_SEED = path.join(__dirname, "..", "dev_assets_seed");
const DEV_ASSETS = path.join(__dirname, "..", "dev_assets");
/** /**
* Check if a port is available * Check if a port is available
@@ -128,9 +130,28 @@ async function allocatePorts() {
*/ */
async function getPorts() { async function getPorts() {
const ports = await allocatePorts(); const ports = await allocatePorts();
copyDevAssets();
return ports; return ports;
} }
/**
* Copy dev_assets_seed to dev_assets
*/
function copyDevAssets() {
try {
if (!fs.existsSync(DEV_ASSETS)) {
// Copy dev_assets_seed to dev_assets
fs.cpSync(DEV_ASSETS_SEED, DEV_ASSETS, { recursive: true });
if (process.argv[2] === "get") {
console.log("Copied dev_assets_seed to dev_assets");
}
}
} catch (error) {
console.error("Failed to copy dev assets:", error.message);
}
}
/** /**
* Clear saved ports * Clear saved ports
*/ */
@@ -183,15 +204,17 @@ if (require.main === module) {
default: default:
console.log("Usage:"); console.log("Usage:");
console.log( console.log(
" node manage-dev-ports.js get - Get all ports (allocate if needed)" " node setup-dev-environment.js get - Setup dev environment (ports + assets)"
); );
console.log( console.log(
" node manage-dev-ports.js frontend - Get frontend port only" " node setup-dev-environment.js frontend - Get frontend port only"
); );
console.log( console.log(
" node manage-dev-ports.js backend - Get backend port only" " node setup-dev-environment.js backend - Get backend port only"
);
console.log(
" node setup-dev-environment.js clear - Clear saved ports"
); );
console.log(" node manage-dev-ports.js clear - Clear saved ports");
break; break;
} }
} }