ProzillaOS/src/features/applications/terminal/commands/ls.js
2023-12-19 11:42:51 +01:00

28 lines
No EOL
853 B
JavaScript

import Command from "../command.js";
export const ls = new Command("ls")
.setManual({
purpose: "List directory contents",
usage: "ls [OPTION]... [FILE]...",
description: "List information about the FILEs (the current directory by default)."
})
.setExecute(function(args, { currentDirectory }) {
let directory = currentDirectory;
if (args.length > 0) {
directory = currentDirectory.navigate(args[0]);
}
if (!directory)
return `${this.name}: Cannot access '${args[0]}': No such file or directory`;
const folderNames = directory.subFolders.map((folder) => folder.id);
const fileNames = directory.files.map((file) => file.id);
const contents = folderNames.concat(fileNames);
if (contents.length === 0)
return { blank: true };
return contents.sort((nameA, nameB) => nameA.localeCompare(nameB)).join(" ");
});