Compare commits

..

4 Commits

Author SHA1 Message Date
Chris Wanstrath
243304780a tweak env 2025-10-01 12:29:21 -07:00
Chris Wanstrath
2c2bcfda39 better env 2025-10-01 12:27:25 -07:00
Chris Wanstrath
f49dad32b0 NO_DNS 2025-10-01 12:25:59 -07:00
Chris Wanstrath
8706c55585 fix update 2025-10-01 12:21:33 -07:00
5 changed files with 43 additions and 11 deletions

View File

@ -26,16 +26,40 @@ And to make sure DNS is working:
bun dev
open localhost:3000
## Production Dev
Make sure you bundle the JS:
bun run bundle
If you want to test (or run) production with DNS features, use `NO_DNS`:
env NO_DNS=1 NODE_ENV=production bun start
You can also use the package commands:
# run without DNS
bun prod-nodns
# run normally
bun prod
## Commands
Commands can return one of three types:
Commands can return one of these types:
- `string`
- `{ error: string }`
- `{ html: string }`
- `{ text: string }`
They can also `throw` to display an error.
Additionally, you can return JS that gets immediately run in the browser using `script:`:
- `{ html: string, script: string }`
- `{ text: string, script: string }`
- `{ script: string }`
## Fonts
Use this to examine what's inside the C64 .woff2 font file in public/vendor:
@ -60,7 +84,7 @@ https://wakamaifondue.com/
- [ ] "project"-based rehaul
- [ ] game/bin/www cartridges
- [-] pico8-style games
- [x] init/update/draw
- [x] init/update/draw
- [x] simple drawing api
- [x] gamepad support
- [ ] sounds

View File

@ -7,14 +7,19 @@ import { highlightToHTML } from "../lib/highlight"
export default function () {
return highlightToHTML([
`NODE_ENV=${process.env.NODE_ENV || "(none)"}`,
`BUN_HOT=${process.env.BUN_HOT || "(none)"}`,
`PORT=${process.env.PORT || "(none)"}`,
`USER=${process.env.USER || "(none)"}`,
`PWD=${process.env.PWD || "(none)"}`,
`NODE_ENV=${valueOrNone(process.env.NODE_ENV)}`,
`NO_DNS=${valueOrNone(process.env.NO_DNS)}`,
`BUN_HOT=${valueOrNone(process.env.BUN_HOT)}`,
`PORT=${valueOrNone(process.env.PORT)}`,
`USER=${valueOrNone(process.env.USER)}`,
`PWD=${valueOrNone(process.env.PWD)}`,
`NOSE_STARTED=${NOSE_STARTED}`,
`NOSE_SYS_BIN=${NOSE_SYS_BIN}`,
`NOSE_DIR=${NOSE_DIR}`,
`GIT_SHA=${GIT_SHA.slice(0, 8)}`,
`NOSE_SYS_BIN="${NOSE_SYS_BIN}"`,
`NOSE_DIR="${NOSE_DIR}"`,
`GIT_SHA="${GIT_SHA}"`,
].join("\n"))
}
function valueOrNone(val: string | undefined): string {
return val ? `"${val}"` : ""
}

View File

@ -8,7 +8,7 @@ export default async function () {
return { error: "Can only update in production." }
}
const { stdout } = await $`cd .. && git pull`.quiet()
const { stdout } = await $`git pull`.quiet()
const out = stdout.toString()
if (/up to date/.test(out)) {

View File

@ -7,6 +7,7 @@
"dev": "env BUN_HOT=1 bun --hot src/server.tsx",
"start": "bun src/server.tsx",
"prod": "env NODE_ENV=production bun src/server.tsx",
"prod-nodns": "env NO_DNS=1 NODE_ENV=production bun src/server.tsx",
"build": "./scripts/build.sh",
"runner": "env NODE_ENV=production bun run src/runner.ts",

View File

@ -17,6 +17,7 @@ const host = hostRaw.toString().trim()
let dnsInit = false
export async function initDNS() {
if (process.env.NO_DNS) return
if (process.env.NODE_ENV !== "production") return
if (!await expectShellCmd("avahi-publish")) return
@ -36,6 +37,7 @@ export async function initDNS() {
}
export function publishAppDNS(app: string) {
if (process.env.NO_DNS) return
if (process.env.NODE_ENV !== "production") return
if (!dnsInit) throw "publishAppDNS() must be called after initDNS()"