move library into rfwfs and rename root.ts to fs.ts, also place it outside of rfwfs

This commit is contained in:
2025-03-17 17:46:55 -04:00
parent 332e90d023
commit 929b267f23
3 changed files with 49 additions and 32 deletions

View File

@ -1,30 +0,0 @@
import { ReadStatus } from "../enum"
import rfwfs, { type EntryCollection, type Entry } from "../main"
import fs from "./root"
let username: string = "user"
const libhome = {} as LibHome
interface WorkingDir<T extends Entry> {
entry?: EntryCollection<T>,
path: string[]
}
interface LibHome {
path: () => string[],
get: <T extends Entry>() => EntryCollection<T>,
}
function traverse_to_goal(path: string[]) {
if (working_dir.entry) {
}
}
libhome.path = function() {
return ["home", username]
}
libhome.get = function() {
}

View File

@ -1,41 +0,0 @@
import { Permissions } from "../enum"
import rfwfs from "../main"
const time_now = (Date.now()/1000)|0
// ------------ Home ------------
const config = rfwfs.directory(".config", Permissions.rw, time_now)
const local = rfwfs.directory(".local", Permissions.rw, time_now)
const downloads = rfwfs.directory("Downloads", Permissions.rw, time_now)
const pictures = rfwfs.directory("Pictures", Permissions.rw, time_now)
const desktop = rfwfs.directory("Desktop", Permissions.rw, time_now)
const videos = rfwfs.directory("Videos", Permissions.rw, time_now)
const music = rfwfs.directory("Music", Permissions.rw, time_now)
const user = rfwfs.directory("user", Permissions.r, time_now, [
config,
local,
downloads,
pictures,
videos,
music,
desktop,
])
// /home/
const home = rfwfs.directory("home", Permissions.r, time_now, [user])
// ------------
// ------------ root ------------
const bin = rfwfs.directory("bin", Permissions.r, time_now)
const vard = rfwfs.directory("var", Permissions.r, time_now)
const etc = rfwfs.directory("etc", Permissions.r, time_now)
// ------------
export default rfwfs.directory("/", Permissions.r, time_now, [
bin,
home,
vard,
etc,
])

47
src/rt/rfwfs/library.ts Normal file
View File

@ -0,0 +1,47 @@
import { ReadStatus } from "./enum"
import { wrap_entry, type WrapResultEntry } from "./wrap"
import rfwfs, { type DirectoryDepth, type Directory } from "./main"
import fs from "../fs"
type Path = string[]
interface LibHome {
goal: (path: Path) => WrapResultEntry<Directory, ReadStatus>
path: () => Path,
get: () => Directory | undefined,
}
let username: string = "user"
const libhome = {} as LibHome
libhome.goal = function(path) {
let traverse = fs
for (const path_name of path) {
const find = traverse.inner.find(path_name)
if (find.status === ReadStatus.Ok) {
if (find.result && rfwfs.is_dir(find.result)) {
traverse = find.result as DirectoryDepth
} else {
return wrap_entry(ReadStatus.Denied)
}
} else {
return wrap_entry(find.status)
}
}
return wrap_entry(ReadStatus.Ok, traverse)
}
libhome.path = function() {
return ["home", username]
}
libhome.get = function() {
const traverse = this.goal(this.path())
return traverse.status === ReadStatus.Ok ? traverse.result : undefined
}
export default libhome