sys -> root
This commit is contained in:
parent
ea7d538618
commit
8a6e95a500
|
|
@ -2,7 +2,7 @@
|
||||||
//
|
//
|
||||||
// Show some debugging information.
|
// Show some debugging information.
|
||||||
|
|
||||||
import { NOSE_STARTED, NOSE_SYS_BIN, NOSE_BIN, NOSE_DATA, NOSE_DIR, GIT_SHA } from "@/config"
|
import { NOSE_STARTED, NOSE_ROOT_BIN, NOSE_BIN, NOSE_DATA, NOSE_DIR, GIT_SHA } from "@/config"
|
||||||
import { highlightToHTML } from "../lib/highlight"
|
import { highlightToHTML } from "../lib/highlight"
|
||||||
|
|
||||||
export default function () {
|
export default function () {
|
||||||
|
|
@ -15,7 +15,7 @@ export default function () {
|
||||||
`PWD=${valueOrNone(process.env.PWD)}`,
|
`PWD=${valueOrNone(process.env.PWD)}`,
|
||||||
`NOSE_STARTED=${NOSE_STARTED}`,
|
`NOSE_STARTED=${NOSE_STARTED}`,
|
||||||
`NOSE_BIN="${NOSE_BIN}"`,
|
`NOSE_BIN="${NOSE_BIN}"`,
|
||||||
`NOSE_SYS_BIN="${NOSE_SYS_BIN}"`,
|
`NOSE_ROOT_BIN="${NOSE_ROOT_BIN}"`,
|
||||||
`NOSE_DATA="${NOSE_DATA}"`,
|
`NOSE_DATA="${NOSE_DATA}"`,
|
||||||
`NOSE_DIR="${NOSE_DIR}"`,
|
`NOSE_DIR="${NOSE_DIR}"`,
|
||||||
`GIT_SHA="${GIT_SHA}"`,
|
`GIT_SHA="${GIT_SHA}"`,
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
export default () =>
|
export default () =>
|
||||||
"sys online"
|
"root online"
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
////
|
////
|
||||||
// Manages the commands on disk, in NOSE_SYS_BIN and NOSE_BIN
|
// Manages the commands on disk, in NOSE_ROOT_BIN and NOSE_BIN
|
||||||
|
|
||||||
import { Glob } from "bun"
|
import { Glob } from "bun"
|
||||||
import { watch } from "fs"
|
import { watch } from "fs"
|
||||||
|
|
@ -9,17 +9,17 @@ import { sendAll } from "./websocket"
|
||||||
import { expectDir } from "./utils"
|
import { expectDir } from "./utils"
|
||||||
import { unique } from "./shared/utils"
|
import { unique } from "./shared/utils"
|
||||||
import { projectBin, projectName } from "./project"
|
import { projectBin, projectName } from "./project"
|
||||||
import { NOSE_DIR, NOSE_SYS_BIN, NOSE_BIN } from "./config"
|
import { DEFAULT_PROJECT, NOSE_DIR, NOSE_ROOT_BIN, NOSE_BIN } from "./config"
|
||||||
|
|
||||||
export function initCommands() {
|
export function initCommands() {
|
||||||
startWatchers()
|
startWatchers()
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function commands(project = "sys"): Promise<string[]> {
|
export async function commands(project = DEFAULT_PROJECT): Promise<string[]> {
|
||||||
let cmds = (await findCommands(NOSE_BIN))
|
let cmds = (await findCommands(NOSE_BIN))
|
||||||
.concat(await findCommands(NOSE_SYS_BIN))
|
.concat(await findCommands(NOSE_ROOT_BIN))
|
||||||
|
|
||||||
if (project !== "sys")
|
if (project !== DEFAULT_PROJECT)
|
||||||
cmds = cmds.concat(await findCommands(projectBin()))
|
cmds = cmds.concat(await findCommands(projectBin()))
|
||||||
|
|
||||||
return unique(cmds).sort()
|
return unique(cmds).sort()
|
||||||
|
|
@ -39,11 +39,11 @@ export function commandPath(cmd: string): string | undefined {
|
||||||
let paths = [
|
let paths = [
|
||||||
join(NOSE_BIN, cmd + ".ts"),
|
join(NOSE_BIN, cmd + ".ts"),
|
||||||
join(NOSE_BIN, cmd + ".tsx"),
|
join(NOSE_BIN, cmd + ".tsx"),
|
||||||
join(NOSE_SYS_BIN, cmd + ".ts"),
|
join(NOSE_ROOT_BIN, cmd + ".ts"),
|
||||||
join(NOSE_SYS_BIN, cmd + ".tsx"),
|
join(NOSE_ROOT_BIN, cmd + ".tsx"),
|
||||||
]
|
]
|
||||||
|
|
||||||
if (projectName() !== "sys")
|
if (projectName() !== DEFAULT_PROJECT)
|
||||||
paths = paths.concat(
|
paths = paths.concat(
|
||||||
join(projectBin(), cmd + ".ts"),
|
join(projectBin(), cmd + ".ts"),
|
||||||
join(projectBin(), cmd + ".tsx"),
|
join(projectBin(), cmd + ".tsx"),
|
||||||
|
|
@ -72,7 +72,7 @@ let noseDirWatcher
|
||||||
let binCmdWatcher
|
let binCmdWatcher
|
||||||
function startWatchers() {
|
function startWatchers() {
|
||||||
if (!expectDir(NOSE_BIN)) return
|
if (!expectDir(NOSE_BIN)) return
|
||||||
if (!expectDir(NOSE_SYS_BIN)) return
|
if (!expectDir(NOSE_ROOT_BIN)) return
|
||||||
|
|
||||||
binCmdWatcher = watch(NOSE_BIN, async (event, filename) => {
|
binCmdWatcher = watch(NOSE_BIN, async (event, filename) => {
|
||||||
sendAll({ type: "commands", data: await commands() })
|
sendAll({ type: "commands", data: await commands() })
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,8 @@ export const NOSE_BIN = resolve("./bin")
|
||||||
export const NOSE_DATA = resolve("./data")
|
export const NOSE_DATA = resolve("./data")
|
||||||
|
|
||||||
export const NOSE_DIR = resolve(untilde(process.env.NOSE_DIR || "./nose"))
|
export const NOSE_DIR = resolve(untilde(process.env.NOSE_DIR || "./nose"))
|
||||||
export const NOSE_SYS_BIN = join(NOSE_DIR, "sys", "bin")
|
export const DEFAULT_PROJECT = "root"
|
||||||
|
export const NOSE_ROOT_BIN = join(NOSE_DIR, DEFAULT_PROJECT, "bin")
|
||||||
|
|
||||||
export const NOSE_STARTED = Date.now()
|
export const NOSE_STARTED = Date.now()
|
||||||
export const GIT_SHA = (await $`git rev-parse --short HEAD`.text()).trim()
|
export const GIT_SHA = (await $`git rev-parse --short HEAD`.text()).trim()
|
||||||
|
|
@ -4,14 +4,14 @@
|
||||||
import { join } from "path"
|
import { join } from "path"
|
||||||
import { readdirSync, type Dirent } from "fs"
|
import { readdirSync, type Dirent } from "fs"
|
||||||
import { sessionGet } from "./session"
|
import { sessionGet } from "./session"
|
||||||
import { NOSE_DIR } from "./config"
|
import { DEFAULT_PROJECT, NOSE_DIR } from "./config"
|
||||||
import { isDir } from "./utils"
|
import { isDir } from "./utils"
|
||||||
|
|
||||||
export function projectName(): string {
|
export function projectName(): string {
|
||||||
const state = sessionGet()
|
const state = sessionGet()
|
||||||
if (!state) throw "no state"
|
if (!state) throw "no state"
|
||||||
|
|
||||||
return state.project || "sys"
|
return state.project || DEFAULT_PROJECT
|
||||||
}
|
}
|
||||||
|
|
||||||
export function projects(): string[] {
|
export function projects(): string[] {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import { prettyJSON } from "hono/pretty-json"
|
||||||
import color from "kleur"
|
import color from "kleur"
|
||||||
|
|
||||||
import type { Message } from "./shared/types"
|
import type { Message } from "./shared/types"
|
||||||
import { NOSE_ICON, NOSE_BIN, NOSE_DATA, NOSE_DIR, NOSE_SYS_BIN } from "./config"
|
import { NOSE_ICON, NOSE_BIN, NOSE_DATA, NOSE_DIR, NOSE_ROOT_BIN } from "./config"
|
||||||
import { transpile, isFile, tilde, isDir } from "./utils"
|
import { transpile, isFile, tilde, isDir } from "./utils"
|
||||||
import { serveApp } from "./webapp"
|
import { serveApp } from "./webapp"
|
||||||
import { commands, commandPath, loadCommandModule } from "./commands"
|
import { commands, commandPath, loadCommandModule } from "./commands"
|
||||||
|
|
@ -196,7 +196,7 @@ console.log(color.cyan(NOSE_ICON))
|
||||||
console.log(color.blue(" NOSE_BIN:"), color.yellow(tilde(NOSE_BIN)))
|
console.log(color.blue(" NOSE_BIN:"), color.yellow(tilde(NOSE_BIN)))
|
||||||
console.log(color.blue(" NOSE_DATA:"), color.yellow(tilde(NOSE_DATA)))
|
console.log(color.blue(" NOSE_DATA:"), color.yellow(tilde(NOSE_DATA)))
|
||||||
console.log(color.blue(" NOSE_DIR:"), color.yellow(tilde(NOSE_DIR)))
|
console.log(color.blue(" NOSE_DIR:"), color.yellow(tilde(NOSE_DIR)))
|
||||||
console.log(color.blue("NOSE_SYS_BIN:"), color.yellow(tilde(NOSE_SYS_BIN)))
|
console.log(color.blue("NOSE_ROOT_BIN:"), color.yellow(tilde(NOSE_ROOT_BIN)))
|
||||||
|
|
||||||
await initNoseDir()
|
await initNoseDir()
|
||||||
initCommands()
|
initCommands()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user