itty-repo/ls.yarn
2025-12-29 19:08:20 -03:00

1 line
No EOL
1.7 KiB
Text

{"protected":false,"mode":"f","metadata":{"name":"ls","author":"Luna Magdalena :3","version":[1],"dependencies":[],"runner":[],"paths":{"ls.js":"%B/ls.js"}},"content":"{\"ls.js\":{\"protected\":true,\"metadata\":{},\"mode\":\"f\",\"content\":\"// get flags\\nlet flags = {}\\nlet dir = \\\".\\\"\\nfor (let i=0; i < args.length; i++) {\\n if (args[i][0] === \\\"-\\\") {\\n if (args[i].indexOf(\\\"l\\\") !== -1)\\n flags.l = true\\n if (args[i].indexOf(\\\"a\\\") !== -1)\\n flags.a = true\\n } else {\\n dir = args[i]\\n break\\n }\\n}\\n\\n// get node\\nlet node\\ntry {\\n node = fs.getNode(dir)\\n} catch (e) {\\n display.print(\\\"Not a directory\\\")\\n quit()\\n}\\n\\nif (!node || node.mode !== \\\"d\\\") {\\n display.print(\\\"Not a directory\\\")\\n quit()\\n}\\n\\nlet empty = true\\nfor (let n of fs.listDir(node)) {\\n if (n.name[0] === \\\".\\\" && !flags.a)\\n continue\\n\\n empty = false\\n\\n let style = 0x7000\\n if (n.mode === \\\"d\\\")\\n style = 0x5000\\n\\n if (n.protected)\\n style += 0x0020\\n\\n if (itty.cursorX + n.name.length >= itty.width) {\\n itty.cursorX = 0\\n itty.cursorY++\\n }\\n\\n while (itty.cursorY >= itty.height)\\n display.lift()\\n\\n if (!flags.l) {\\n display.buffer(n.name + \\\" \\\", style)\\n } else {\\n display.buffer(n.mode + \\\" \\\", 0xc000)\\n display.buffer(n.name, style)\\n display.buffer(n.protected ? \\\" (protected)%n\\\" : \\\"%n\\\", 0xf000)\\n }\\n}\\n\\nif (empty)\\n display.print(\\\"Directory is empty\\\", 0xf000)\\n\\ndisplay.render()\\nquit()\"}}"}