From e8e42f778694f4f90075ccc891f4708389a3e013 Mon Sep 17 00:00:00 2001 From: retrozinndev Date: Wed, 6 Aug 2025 16:38:39 -0300 Subject: [PATCH] :sparkles: build: use pnpm + shell scripts to build project --- .gitignore | 5 +++++ package.json | 14 ++++++++++++++ src/pnpm-workspace.yaml => pnpm-workspace.yaml | 0 scripts/build.sh | 10 ++++++++++ scripts/start.sh | 12 ++++++++++++ scripts/types.sh | 8 ++++++++ src/.gitignore | 5 ----- src/package.json | 14 -------------- 8 files changed, 49 insertions(+), 19 deletions(-) create mode 100644 package.json rename src/pnpm-workspace.yaml => pnpm-workspace.yaml (100%) create mode 100644 scripts/build.sh create mode 100644 scripts/start.sh create mode 100644 scripts/types.sh delete mode 100644 src/.gitignore delete mode 100644 src/package.json diff --git a/.gitignore b/.gitignore index 397b4a7..329cd9f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ +node_modules/ +@girs/ +build/ + +pnpm-lock.yaml *.log diff --git a/package.json b/package.json new file mode 100644 index 0000000..bc4f7f3 --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://www.schemastore.org/package.json", + "name": "colorshell", + "packageManager": "pnpm@10.12.1", + "scripts": { + "types": "sh ./scripts/types.sh", + "dev": "pnpm build && pnpm start", + "start": "sh ./scripts/start.sh", + "build": "sh ./scripts/build.sh" + }, + "devDependencies": { + "ags": "link:../../../../usr/share/ags/js" + } +} diff --git a/src/pnpm-workspace.yaml b/pnpm-workspace.yaml similarity index 100% rename from src/pnpm-workspace.yaml rename to pnpm-workspace.yaml diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100644 index 0000000..0bc399a --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,10 @@ + +set -e + +outdir="${1:-./build}" + +mkdir -p $outdir + +cp -rf node_modules src/ +ags bundle src/app.ts $outdir/colorshell +rm -rf src/node_modules diff --git a/scripts/start.sh b/scripts/start.sh new file mode 100644 index 0000000..d81a9d4 --- /dev/null +++ b/scripts/start.sh @@ -0,0 +1,12 @@ +file="${1:-./build/colorshell}" + +function start() { + exec "$file" +} + +if [[ -f "$file" ]]; then + start +else + pnpm build + start +fi diff --git a/scripts/types.sh b/scripts/types.sh new file mode 100644 index 0000000..554e5e6 --- /dev/null +++ b/scripts/types.sh @@ -0,0 +1,8 @@ +if [[ -d "@types" ]] && [[ ! "$1" == "-f" ]]; then + echo "Types skipped(already built). To force-build, run \`types\`" + exit 0 +fi + + +echo "Building types, this can take long..." +pnpx @ts-for-gir/cli generate --ignoreVersionConflicts -o ./src/@girs diff --git a/src/.gitignore b/src/.gitignore deleted file mode 100644 index bf5288d..0000000 --- a/src/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules/ -@girs/ -build/ - -pnpm-lock.yaml diff --git a/src/package.json b/src/package.json deleted file mode 100644 index a4b17ba..0000000 --- a/src/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://www.schemastore.org/package.json", - "name": "colorshell", - "packageManager": "pnpm@10.12.1", - "scripts": { - "start": "ags run", - "restart": "ags request reload", - "stop": "ags quit", - "bundle": "ags bundle" - }, - "dependencies": { - "ags": "link:../../.local/share/pnpm/global/5/node_modules/ags" - } -}