From a109c7115e7979b560c8a2f30114e49b1e8db5d8 Mon Sep 17 00:00:00 2001 From: ChaosMakerMLG Date: Mon, 8 Dec 2025 06:57:38 +0100 Subject: [PATCH] progress, dont really know what to put in here... --- src/lib/assets/fs/fs.json | 3662 ++++++++++++------------ src/lib/assets/fs/signature | 2 +- src/lib/stores/bash/bash.ts | 8 +- src/lib/stores/bash/commands/cd.ts | 2 +- src/lib/stores/bash/commands/ls.ts | 44 +- src/lib/stores/bash/fs.ts | 40 +- src/lib/stores/bash/sort.ts | 82 +- src/lib/stores/terminal/init.svelte.ts | 6 +- src/lib/stores/terminal/terminal.ts | 3 +- src/modules/Terminal.svelte | 1 + 10 files changed, 1908 insertions(+), 1942 deletions(-) diff --git a/src/lib/assets/fs/fs.json b/src/lib/assets/fs/fs.json index b46f04a..731e9fe 100644 --- a/src/lib/assets/fs/fs.json +++ b/src/lib/assets/fs/fs.json @@ -1,1860 +1,1804 @@ { - "1": { - "Inode": 1, - "Name": "root", - "Type": 16384, - "Size": 4096, - "Children": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 44, - 45, - 46, - 47, - 48, - 49, - 50 - ], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:33:41.623+02:00", - "CTime": "2025-09-12T16:33:41.623+02:00", - "ATime": "2025-11-28T11:23:51.467+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": null - }, - "2": { - "Inode": 2, - "Name": "run", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:32:03.619+02:00", - "CTime": "2025-09-12T16:32:45.619+02:00", - "ATime": "2025-11-28T11:59:00.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "3": { - "Inode": 3, - "Name": "dev", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:26:44.616+02:00", - "CTime": "2025-09-12T16:28:11.616+02:00", - "ATime": "2025-11-28T11:59:02.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "4": { - "Inode": 4, - "Name": "proc", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:34:28.618+02:00", - "CTime": "2025-09-12T16:32:48.618+02:00", - "ATime": "2025-11-28T11:59:04.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "5": { - "Inode": 5, - "Name": "lost\u002Bfound", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:35:16.617+02:00", - "CTime": "2025-09-12T16:34:56.617+02:00", - "ATime": "2025-11-28T11:59:05.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "6": { - "Inode": 6, - "Name": "boot", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:28:02.616+02:00", - "CTime": "2025-09-12T16:25:38.616+02:00", - "ATime": "2025-11-28T11:59:06.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "7": { - "Inode": 7, - "Name": "usr", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:30:53.623+02:00", - "CTime": "2025-09-12T16:35:25.623+02:00", - "ATime": "2025-11-28T11:59:07.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "8": { - "Inode": 8, - "Name": "etc", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:29:51.616+02:00", - "CTime": "2025-09-12T16:33:54.616+02:00", - "ATime": "2025-11-28T11:59:08.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "9": { - "Inode": 9, - "Name": "srv", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:22:54.62+02:00", - "CTime": "2025-09-12T16:25:39.622+02:00", - "ATime": "2025-11-28T11:59:08.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "10": { - "Inode": 10, - "Name": "lib64", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:31:33.617+02:00", - "CTime": "2025-09-12T16:35:17.617+02:00", - "ATime": "2025-11-28T11:59:10.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "11": { - "Inode": 11, - "Name": "root", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:18:28.61+02:00", - "CTime": "2025-09-12T16:22:11.61+02:00", - "ATime": "2025-11-28T11:59:11.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "12": { - "Inode": 12, - "Name": "home", - "Type": 16384, - "Size": 4096, - "Children": [ - 13 - ], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:41:54.753+02:00", - "CTime": "2025-09-13T14:41:54.753+02:00", - "ATime": "2025-11-28T11:59:11.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "13": { - "Inode": 13, - "Name": "kamil", - "Type": 16384, - "Size": 4096, - "Children": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 38, - 39, - 40, - 41, - 43 - ], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T18:34:16.743+02:00", - "CTime": "2025-09-13T18:34:16.743+02:00", - "ATime": "2025-11-28T11:59:12.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 12 - }, - "14": { - "Inode": 14, - "Name": ".bash_logout", - "Type": 32768, - "Size": 1, - "Children": null, - "Content": "90bd40fe-ff53-41e4-8498-f37902b9a6ca", - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T18:35:35.74+02:00", - "CTime": "2025-09-13T18:30:11.74+02:00", - "ATime": "2025-11-28T11:59:21.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "15": { - "Inode": 15, - "Name": ".config", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:41:12.759+02:00", - "CTime": "2025-09-13T14:41:58.759+02:00", - "ATime": "2025-11-28T11:59:24.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "16": { - "Inode": 16, - "Name": ".bashrc", - "Type": 32768, - "Size": 1, - "Children": null, - "Content": "42b7fe6b-3c38-4a45-9fa7-3f0253b93fa8", - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T18:29:56.477+02:00", - "CTime": "2025-09-13T18:32:15.732+02:00", - "ATime": "2025-11-28T11:59:25.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "17": { - "Inode": 17, - "Name": ".npm", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:35:02.76+02:00", - "CTime": "2025-09-13T14:38:59.761+02:00", - "ATime": "2025-11-28T11:59:27.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "18": { - "Inode": 18, - "Name": ".bash_profile", - "Type": 32768, - "Size": 1, - "Children": null, - "Content": "563f011c-1b79-4e19-a23a-ae5d82726b85", - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T18:29:56.477+02:00", - "CTime": "2025-09-13T18:38:49.731+02:00", - "ATime": "2025-11-28T11:59:27.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "19": { - "Inode": 19, - "Name": "Videos", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:32:09.757+02:00", - "CTime": "2025-09-13T14:40:21.757+02:00", - "ATime": "2025-11-28T11:59:30.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "20": { - "Inode": 20, - "Name": ".java", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:33:05.759+02:00", - "CTime": "2025-09-13T14:41:18.76+02:00", - "ATime": "2025-11-28T11:59:31.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "21": { - "Inode": 21, - "Name": ".cache", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:45:06.758+02:00", - "CTime": "2025-09-13T14:42:13.758+02:00", - "ATime": "2025-11-28T11:59:32.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "22": { - "Inode": 22, - "Name": "Downloads", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:35:36.756+02:00", - "CTime": "2025-09-13T14:31:03.756+02:00", - "ATime": "2025-11-28T11:59:33.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "23": { - "Inode": 23, - "Name": ".xinitrc", - "Type": 32768, - "Size": 1, - "Children": null, - "Content": "e5a592ad-7e71-4db2-9e3b-bde19f98e9ff", - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T18:32:08.743+02:00", - "CTime": "2025-09-13T18:34:16.743+02:00", - "ATime": "2025-11-28T11:59:33.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "24": { - "Inode": 24, - "Name": "Desktop", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:38:19.756+02:00", - "CTime": "2025-09-13T14:33:46.756+02:00", - "ATime": "2025-11-28T11:59:35.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "25": { - "Inode": 25, - "Name": ".ssh", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:43:24.761+02:00", - "CTime": "2025-09-13T14:37:10.761+02:00", - "ATime": "2025-11-28T11:59:36.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "26": { - "Inode": 26, - "Name": ".bash_history", - "Type": 32768, - "Size": 1, - "Children": null, - "Content": "663086d7-d96b-421c-9fd1-45e09ba892e9", - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T18:39:03.737+02:00", - "CTime": "2025-09-13T18:31:16.739+02:00", - "ATime": "2025-11-28T11:59:37.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "27": { - "Inode": 27, - "Name": "Documents", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:34:16.754+02:00", - "CTime": "2025-09-13T14:45:27.754+02:00", - "ATime": "2025-11-28T11:59:39.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "28": { - "Inode": 28, - "Name": ".cargo", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:32:01.758+02:00", - "CTime": "2025-09-13T14:43:50.759+02:00", - "ATime": "2025-11-28T11:59:40.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "29": { - "Inode": 29, - "Name": "Projects", - "Type": 16384, - "Size": 4096, - "Children": [ - 30, - 37 - ], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-10-08T18:27:36.483+02:00", - "CTime": "2025-10-08T18:27:36.483+02:00", - "ATime": "2025-11-28T11:59:41.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "30": { - "Inode": 30, - "Name": "Websites", - "Type": 16384, - "Size": 4096, - "Children": [ - 31, - 33, - 35 - ], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-10-08T18:20:28.475+02:00", - "CTime": "2025-10-08T18:20:28.475+02:00", - "ATime": "2025-11-28T11:59:42.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 29 - }, - "31": { - "Inode": 31, - "Name": "This Website", - "Type": 16384, - "Size": 4096, - "Children": [ - 32 - ], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-10-08T18:32:59.473+02:00", - "CTime": "2025-10-08T18:32:59.473+02:00", - "ATime": "2025-11-28T11:59:43.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 30 - }, - "32": { - "Inode": 32, - "Name": "about.md", - "Type": 32768, - "Size": 1, - "Children": null, - "Content": "84c0b742-78e8-4cf4-b269-7632ec9f52cb", - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-10-08T18:16:12.808+02:00", - "CTime": "2025-10-08T18:32:59.473+02:00", - "ATime": "2025-11-28T11:59:43.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 31 - }, - "33": { - "Inode": 33, - "Name": "Sheepo", - "Type": 16384, - "Size": 4096, - "Children": [ - 34 - ], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-10-08T19:05:36.346+02:00", - "CTime": "2025-10-08T19:05:36.346+02:00", - "ATime": "2025-11-28T11:59:45.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 30 - }, - "34": { - "Inode": 34, - "Name": "about.md", - "Type": 32768, - "Size": 1, - "Children": null, - "Content": "d1eb218b-41a5-4c22-851e-21058eaa13f3", - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-10-08T18:16:12.808+02:00", - "CTime": "2025-10-08T19:05:37.59+02:00", - "ATime": "2025-11-28T11:59:45.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 33 - }, - "35": { - "Inode": 35, - "Name": "SchoolProjectManager", - "Type": 16384, - "Size": 4096, - "Children": [ - 36 - ], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-10-08T19:06:20.346+02:00", - "CTime": "2025-10-08T19:06:20.346+02:00", - "ATime": "2025-11-28T11:59:47.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 30 - }, - "36": { - "Inode": 36, - "Name": "about.md", - "Type": 32768, - "Size": 1, - "Children": null, - "Content": "6a2cb265-0b6e-4613-9f43-d379ea6fae6d", - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-10-08T18:16:12.808+02:00", - "CTime": "2025-10-08T19:06:21.507+02:00", - "ATime": "2025-11-28T11:59:47.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 35 - }, - "37": { - "Inode": 37, - "Name": "C#", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-10-08T18:14:10.488+02:00", - "CTime": "2025-10-08T18:24:33.488+02:00", - "ATime": "2025-11-28T11:59:49.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 29 - }, - "38": { - "Inode": 38, - "Name": ".local", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:32:33.76+02:00", - "CTime": "2025-09-13T14:31:10.76+02:00", - "ATime": "2025-11-28T11:59:50.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "39": { - "Inode": 39, - "Name": "Pictures", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:45:43.757+02:00", - "CTime": "2025-09-13T14:38:46.757+02:00", - "ATime": "2025-11-28T11:59:51.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "40": { - "Inode": 40, - "Name": ".var", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:40:28.761+02:00", - "CTime": "2025-09-13T14:33:26.762+02:00", - "ATime": "2025-11-28T11:59:52.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "41": { - "Inode": 41, - "Name": "Music", - "Type": 16384, - "Size": 4096, - "Children": [ - 42 - ], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-10-08T18:10:56.493+02:00", - "CTime": "2025-10-08T18:10:56.493+02:00", - "ATime": "2025-11-28T11:59:53.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "42": { - "Inode": 42, - "Name": "nggyu.lrc", - "Type": 32768, - "Size": 171, - "Children": null, - "Content": "d8cf8d18-9575-4c95-9a41-ccd129188603", - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - }, - { - "Read": true, - "Write": false, - "Exec": false - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-14T03:31:38.952+02:00", - "CTime": "2025-10-08T18:10:56.493+02:00", - "ATime": "2025-11-28T11:59:53.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 41 - }, - "43": { - "Inode": 43, - "Name": ".dotnet", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-13T14:44:34.76+02:00", - "CTime": "2025-09-13T14:43:29.76+02:00", - "ATime": "2025-11-28T11:59:55.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 13 - }, - "44": { - "Inode": 44, - "Name": "tmp", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:27:03.623+02:00", - "CTime": "2025-09-12T16:30:07.623+02:00", - "ATime": "2025-11-28T11:43:17.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "45": { - "Inode": 45, - "Name": "bin", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:33:02.615+02:00", - "CTime": "2025-09-12T16:25:00.616+02:00", - "ATime": "2025-11-28T11:43:18.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "46": { - "Inode": 46, - "Name": "var", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:31:55.623+02:00", - "CTime": "2025-09-12T16:33:41.623+02:00", - "ATime": "2025-11-28T11:43:19.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "47": { - "Inode": 47, - "Name": "sbin", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:28:37.619+02:00", - "CTime": "2025-09-12T16:34:12.62+02:00", - "ATime": "2025-11-28T11:43:20.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "48": { - "Inode": 48, - "Name": "sys", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:31:13.622+02:00", - "CTime": "2025-09-12T16:26:05.622+02:00", - "ATime": "2025-11-28T11:43:21.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "49": { - "Inode": 49, - "Name": "lib", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:36:02.616+02:00", - "CTime": "2025-09-12T16:27:50.617+02:00", - "ATime": "2025-11-28T11:43:22.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - }, - "50": { - "Inode": 50, - "Name": "opt", - "Type": 16384, - "Size": 4096, - "Children": [], - "Content": null, - "Target": null, - "Permission": [ - { - "Read": true, - "Write": true, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - }, - { - "Read": true, - "Write": false, - "Exec": true - } - ], - "Owner": 1000, - "Group": 984, - "TimeStamps": { - "MTime": "2025-09-12T16:35:09.617+02:00", - "CTime": "2025-09-12T16:29:15.618+02:00", - "ATime": "2025-11-28T11:43:23.496+01:00" - }, - "Interactible": false, - "Func": null, - "Parent": 1 - } -} \ No newline at end of file + "1": { + "Inode": 1, + "Name": "root", + "Type": 16384, + "Size": 4096, + "Children": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 44, 45, 46, 47, 48, 49, 50], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:33:41.623+02:00", + "CTime": "2025-09-12T16:33:41.623+02:00", + "ATime": "2025-11-28T11:23:51.467+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": null + }, + "2": { + "Inode": 2, + "Name": "run", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:32:03.619+02:00", + "CTime": "2025-09-12T16:32:45.619+02:00", + "ATime": "2025-11-28T11:59:00.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "3": { + "Inode": 3, + "Name": "dev", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:26:44.616+02:00", + "CTime": "2025-09-12T16:28:11.616+02:00", + "ATime": "2025-11-28T11:59:02.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "4": { + "Inode": 4, + "Name": "proc", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:34:28.618+02:00", + "CTime": "2025-09-12T16:32:48.618+02:00", + "ATime": "2025-11-28T11:59:04.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "5": { + "Inode": 5, + "Name": "lost\u002Bfound", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:35:16.617+02:00", + "CTime": "2025-09-12T16:34:56.617+02:00", + "ATime": "2025-11-28T11:59:05.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "6": { + "Inode": 6, + "Name": "boot", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:28:02.616+02:00", + "CTime": "2025-09-12T16:25:38.616+02:00", + "ATime": "2025-11-28T11:59:06.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "7": { + "Inode": 7, + "Name": "usr", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:30:53.623+02:00", + "CTime": "2025-09-12T16:35:25.623+02:00", + "ATime": "2025-11-28T11:59:07.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "8": { + "Inode": 8, + "Name": "etc", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:29:51.616+02:00", + "CTime": "2025-09-12T16:33:54.616+02:00", + "ATime": "2025-11-28T11:59:08.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "9": { + "Inode": 9, + "Name": "srv", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:22:54.62+02:00", + "CTime": "2025-09-12T16:25:39.622+02:00", + "ATime": "2025-11-28T11:59:08.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "10": { + "Inode": 10, + "Name": "lib64", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:31:33.617+02:00", + "CTime": "2025-09-12T16:35:17.617+02:00", + "ATime": "2025-11-28T11:59:10.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "11": { + "Inode": 11, + "Name": "root", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:18:28.61+02:00", + "CTime": "2025-09-12T16:22:11.61+02:00", + "ATime": "2025-11-28T11:59:11.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "12": { + "Inode": 12, + "Name": "home", + "Type": 16384, + "Size": 4096, + "Children": [13], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:41:54.753+02:00", + "CTime": "2025-09-13T14:41:54.753+02:00", + "ATime": "2025-11-28T11:59:11.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "13": { + "Inode": 13, + "Name": "kamil", + "Type": 16384, + "Size": 4096, + "Children": [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 38, 39, 40, 41, 43 + ], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T18:34:16.743+02:00", + "CTime": "2025-09-13T18:34:16.743+02:00", + "ATime": "2025-11-28T11:59:12.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 12 + }, + "14": { + "Inode": 14, + "Name": ".bash_logout", + "Type": 32768, + "Size": 1, + "Children": null, + "Content": "90bd40fe-ff53-41e4-8498-f37902b9a6ca", + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T18:35:35.74+02:00", + "CTime": "2025-09-13T18:30:11.74+02:00", + "ATime": "2025-11-28T11:59:21.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "15": { + "Inode": 15, + "Name": ".config", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:41:12.759+02:00", + "CTime": "2025-09-13T14:41:58.759+02:00", + "ATime": "2025-11-28T11:59:24.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "16": { + "Inode": 16, + "Name": ".bashrc", + "Type": 32768, + "Size": 1, + "Children": null, + "Content": "42b7fe6b-3c38-4a45-9fa7-3f0253b93fa8", + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T18:29:56.477+02:00", + "CTime": "2025-09-13T18:32:15.732+02:00", + "ATime": "2025-11-28T11:59:25.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "17": { + "Inode": 17, + "Name": ".npm", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:35:02.76+02:00", + "CTime": "2025-09-13T14:38:59.761+02:00", + "ATime": "2025-11-28T11:59:27.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "18": { + "Inode": 18, + "Name": ".bash_profile", + "Type": 32768, + "Size": 1, + "Children": null, + "Content": "563f011c-1b79-4e19-a23a-ae5d82726b85", + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T18:29:56.477+02:00", + "CTime": "2025-09-13T18:38:49.731+02:00", + "ATime": "2025-11-28T11:59:27.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "19": { + "Inode": 19, + "Name": "Videos", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:32:09.757+02:00", + "CTime": "2025-09-13T14:40:21.757+02:00", + "ATime": "2025-11-28T11:59:30.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "20": { + "Inode": 20, + "Name": ".java", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:33:05.759+02:00", + "CTime": "2025-09-13T14:41:18.76+02:00", + "ATime": "2025-11-28T11:59:31.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "21": { + "Inode": 21, + "Name": ".cache", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:45:06.758+02:00", + "CTime": "2025-09-13T14:42:13.758+02:00", + "ATime": "2025-11-28T11:59:32.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "22": { + "Inode": 22, + "Name": "Downloads", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:35:36.756+02:00", + "CTime": "2025-09-13T14:31:03.756+02:00", + "ATime": "2025-11-28T11:59:33.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "23": { + "Inode": 23, + "Name": ".xinitrc", + "Type": 32768, + "Size": 1, + "Children": null, + "Content": "e5a592ad-7e71-4db2-9e3b-bde19f98e9ff", + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T18:32:08.743+02:00", + "CTime": "2025-09-13T18:34:16.743+02:00", + "ATime": "2025-11-28T11:59:33.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "24": { + "Inode": 24, + "Name": "Desktop", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:38:19.756+02:00", + "CTime": "2025-09-13T14:33:46.756+02:00", + "ATime": "2025-11-28T11:59:35.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "25": { + "Inode": 25, + "Name": ".ssh", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:43:24.761+02:00", + "CTime": "2025-09-13T14:37:10.761+02:00", + "ATime": "2025-11-28T11:59:36.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "26": { + "Inode": 26, + "Name": ".bash_history", + "Type": 32768, + "Size": 1, + "Children": null, + "Content": "663086d7-d96b-421c-9fd1-45e09ba892e9", + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T18:39:03.737+02:00", + "CTime": "2025-09-13T18:31:16.739+02:00", + "ATime": "2025-11-28T11:59:37.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "27": { + "Inode": 27, + "Name": "Documents", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:34:16.754+02:00", + "CTime": "2025-09-13T14:45:27.754+02:00", + "ATime": "2025-11-28T11:59:39.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "28": { + "Inode": 28, + "Name": ".cargo", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:32:01.758+02:00", + "CTime": "2025-09-13T14:43:50.759+02:00", + "ATime": "2025-11-28T11:59:40.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "29": { + "Inode": 29, + "Name": "Projects", + "Type": 16384, + "Size": 4096, + "Children": [30, 37], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-10-08T18:27:36.483+02:00", + "CTime": "2025-10-08T18:27:36.483+02:00", + "ATime": "2025-11-28T11:59:41.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "30": { + "Inode": 30, + "Name": "Websites", + "Type": 16384, + "Size": 4096, + "Children": [31, 33, 35], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-10-08T18:20:28.475+02:00", + "CTime": "2025-10-08T18:20:28.475+02:00", + "ATime": "2025-11-28T11:59:42.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 29 + }, + "31": { + "Inode": 31, + "Name": "This Website", + "Type": 16384, + "Size": 4096, + "Children": [32], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-10-08T18:32:59.473+02:00", + "CTime": "2025-10-08T18:32:59.473+02:00", + "ATime": "2025-11-28T11:59:43.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 30 + }, + "32": { + "Inode": 32, + "Name": "about.md", + "Type": 32768, + "Size": 1, + "Children": null, + "Content": "84c0b742-78e8-4cf4-b269-7632ec9f52cb", + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-10-08T18:16:12.808+02:00", + "CTime": "2025-10-08T18:32:59.473+02:00", + "ATime": "2025-11-28T11:59:43.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 31 + }, + "33": { + "Inode": 33, + "Name": "Sheepo", + "Type": 16384, + "Size": 4096, + "Children": [34], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-10-08T19:05:36.346+02:00", + "CTime": "2025-10-08T19:05:36.346+02:00", + "ATime": "2025-11-28T11:59:45.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 30 + }, + "34": { + "Inode": 34, + "Name": "about.md", + "Type": 32768, + "Size": 1, + "Children": null, + "Content": "d1eb218b-41a5-4c22-851e-21058eaa13f3", + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-10-08T18:16:12.808+02:00", + "CTime": "2025-10-08T19:05:37.59+02:00", + "ATime": "2025-11-28T11:59:45.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 33 + }, + "35": { + "Inode": 35, + "Name": "SchoolProjectManager", + "Type": 16384, + "Size": 4096, + "Children": [36], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-10-08T19:06:20.346+02:00", + "CTime": "2025-10-08T19:06:20.346+02:00", + "ATime": "2025-11-28T11:59:47.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 30 + }, + "36": { + "Inode": 36, + "Name": "about.md", + "Type": 32768, + "Size": 1, + "Children": null, + "Content": "6a2cb265-0b6e-4613-9f43-d379ea6fae6d", + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-10-08T18:16:12.808+02:00", + "CTime": "2025-10-08T19:06:21.507+02:00", + "ATime": "2025-11-28T11:59:47.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 35 + }, + "37": { + "Inode": 37, + "Name": "C#", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-10-08T18:14:10.488+02:00", + "CTime": "2025-10-08T18:24:33.488+02:00", + "ATime": "2025-11-28T11:59:49.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 29 + }, + "38": { + "Inode": 38, + "Name": ".local", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:32:33.76+02:00", + "CTime": "2025-09-13T14:31:10.76+02:00", + "ATime": "2025-11-28T11:59:50.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "39": { + "Inode": 39, + "Name": "Pictures", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:45:43.757+02:00", + "CTime": "2025-09-13T14:38:46.757+02:00", + "ATime": "2025-11-28T11:59:51.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "40": { + "Inode": 40, + "Name": ".var", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:40:28.761+02:00", + "CTime": "2025-09-13T14:33:26.762+02:00", + "ATime": "2025-11-28T11:59:52.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "41": { + "Inode": 41, + "Name": "Music", + "Type": 16384, + "Size": 4096, + "Children": [42], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-10-08T18:10:56.493+02:00", + "CTime": "2025-10-08T18:10:56.493+02:00", + "ATime": "2025-11-28T11:59:53.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "42": { + "Inode": 42, + "Name": "nggyu.lrc", + "Type": 32768, + "Size": 171, + "Children": null, + "Content": "d8cf8d18-9575-4c95-9a41-ccd129188603", + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + }, + { + "Read": true, + "Write": false, + "Exec": false + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-14T03:31:38.952+02:00", + "CTime": "2025-10-08T18:10:56.493+02:00", + "ATime": "2025-11-28T11:59:53.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 41 + }, + "43": { + "Inode": 43, + "Name": ".dotnet", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-13T14:44:34.76+02:00", + "CTime": "2025-09-13T14:43:29.76+02:00", + "ATime": "2025-11-28T11:59:55.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 13 + }, + "44": { + "Inode": 44, + "Name": "tmp", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:27:03.623+02:00", + "CTime": "2025-09-12T16:30:07.623+02:00", + "ATime": "2025-11-28T11:43:17.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "45": { + "Inode": 45, + "Name": "bin", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:33:02.615+02:00", + "CTime": "2025-09-12T16:25:00.616+02:00", + "ATime": "2025-11-28T11:43:18.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "46": { + "Inode": 46, + "Name": "var", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:31:55.623+02:00", + "CTime": "2025-09-12T16:33:41.623+02:00", + "ATime": "2025-11-28T11:43:19.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "47": { + "Inode": 47, + "Name": "sbin", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:28:37.619+02:00", + "CTime": "2025-09-12T16:34:12.62+02:00", + "ATime": "2025-11-28T11:43:20.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "48": { + "Inode": 48, + "Name": "sys", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:31:13.622+02:00", + "CTime": "2025-09-12T16:26:05.622+02:00", + "ATime": "2025-11-28T11:43:21.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "49": { + "Inode": 49, + "Name": "lib", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:36:02.616+02:00", + "CTime": "2025-09-12T16:27:50.617+02:00", + "ATime": "2025-11-28T11:43:22.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + }, + "50": { + "Inode": 50, + "Name": "opt", + "Type": 16384, + "Size": 4096, + "Children": [], + "Content": null, + "Target": null, + "Permission": [ + { + "Read": true, + "Write": true, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + }, + { + "Read": true, + "Write": false, + "Exec": true + } + ], + "Owner": 1000, + "Group": 984, + "TimeStamps": { + "MTime": "2025-09-12T16:35:09.617+02:00", + "CTime": "2025-09-12T16:29:15.618+02:00", + "ATime": "2025-11-28T11:43:23.496+01:00" + }, + "Interactible": false, + "Func": null, + "Parent": 1 + } +} diff --git a/src/lib/assets/fs/signature b/src/lib/assets/fs/signature index c86b6aa..d970f37 100644 --- a/src/lib/assets/fs/signature +++ b/src/lib/assets/fs/signature @@ -1 +1 @@ -32aac83d-ce2b-4def-977c-dcdcb6f514eg \ No newline at end of file +32aac83d-ce2b-4def-977c-dcdcb6f514ed \ No newline at end of file diff --git a/src/lib/stores/bash/bash.ts b/src/lib/stores/bash/bash.ts index fdc96c7..5e2cc0a 100644 --- a/src/lib/stores/bash/bash.ts +++ b/src/lib/stores/bash/bash.ts @@ -19,7 +19,7 @@ export type TimeStamps = { mTime: Date; cTime: Date; aTime: Date; -} +}; // TODO: Finish this // TODO: Change into a type instead of an enum for performance (low priority) @@ -103,13 +103,14 @@ export class Bash { if (command.root) { if (this.hasSudoPerms(this.user.uid)) { let out: Result = command.method.call(this, args); - this.appendNewResult(this.getPwd(), out, this.user.history[0]); + this.appendNewResult(this.getCwd(), out, this.user.history[0]); } this.throwError(result); } let out: Result = command.method.call(this, args); - this.appendNewResult(this.getPwd(), out.data?.data, this.user.history[0]); + console.log(out); + this.appendNewResult(this.getCwd(), out.data?.data, this.user.history[0]); } throwError(result: Result): void { @@ -135,6 +136,7 @@ export class Bash { output: output, cmd: cmd }; + console.log(data); this._terminal.PrintOutput(data); } diff --git a/src/lib/stores/bash/commands/cd.ts b/src/lib/stores/bash/commands/cd.ts index ba98ab2..d5e09e9 100644 --- a/src/lib/stores/bash/commands/cd.ts +++ b/src/lib/stores/bash/commands/cd.ts @@ -27,6 +27,7 @@ export const cmd_cd = function (this: Bash, args: CommandArgs): Result { this.getFs().pwd = this.getFs().cwd; targetNode = this.getFs().resolvePath(path); // Conversion from STRING path to TREENODE + console.log(targetNode, path, 'CD OUTPUT'); if (targetNode === null) return result; if (targetNode.type !== Type.Directory) return result; @@ -34,7 +35,6 @@ export const cmd_cd = function (this: Bash, args: CommandArgs): Result { this.getFs().cwd = targetNode.inode; // CD was successfull, change current dir to the verified target dir result.exitCode = ExitCode.SUCCESS; - console.log(this.getCwd()); return result; }; diff --git a/src/lib/stores/bash/commands/ls.ts b/src/lib/stores/bash/commands/ls.ts index f255d5e..5fc463b 100644 --- a/src/lib/stores/bash/commands/ls.ts +++ b/src/lib/stores/bash/commands/ls.ts @@ -71,27 +71,26 @@ function result_ls(this: Bash, data: any, args: CommandArgs): HTMLElement { const f_a: boolean = flagInfo.has('a') || flagInfo.has('f'); const f_h: boolean = flagInfo.has('h'); + const f_U: boolean = flagInfo.has('U'); + const f_f: boolean = flagInfo.has('f'); if (flagInfo.has('l') || flagInfo.has('g') || flagInfo.has('o')) { const w: HTMLElement = document.createElement('div'); for (const node of nodes) { const elem: HTMLElement = document.createElement('div'); - let children: TreeNode[] = []; + const children: TreeNode[] = node.children.map((child) => this.getFs().getNodeByINode(child)); const rows: string[] = []; - if (!flagInfo.has('U') && !flagInfo.has('f')) { + if (!f_U && !f_f) { //TODO: Add sort by option later on - children: TreeNode[] = Sort.nodeArraySort.call(this, node.children, flagInfo.has('r')); - console.log('had U or f'); + Sort.nodeArraySort.call(this, children, flagInfo.has('r')); } - const sizes = node.children.map((child) => (this.getFs().getNodeByINode(child).size)); + const sizes = children.map((child) => child.size); const maxSizeWidth = Math.max(...sizes.map((size) => size)); - for (let i = 0; i < node.children.length; i++) { - const child: TreeNode = children[i]; - + for (const child of children) { if (child.name.startsWith('.') && !(f_a || flagInfo.has('A'))) continue; const cols: LsEntry = { @@ -118,18 +117,17 @@ function result_ls(this: Bash, data: any, args: CommandArgs): HTMLElement { let parent: LsEntry = { ...current, name: '..' - } - if(node.parent) { + }; + if (node.parent) { const parentNode: TreeNode = this.getFs().getNodeByINode(node.parent); parent = { perms: formatPermission(parentNode), - children: formatChildren(parentNode), - owners: formatOwners.call(this, parentNode, flagInfo), - size: formatSize.call(this, f_h, parentNode, maxSizeWidth), - modt: formatModtime(parentNode), - name: '..' - } - + children: formatChildren(parentNode), + owners: formatOwners.call(this, parentNode, flagInfo), + size: formatSize.call(this, f_h, parentNode, maxSizeWidth), + modt: formatModtime(parentNode), + name: '..' + }; } if (flagInfo.has('r')) { @@ -179,19 +177,16 @@ function formatOwners(this: Bash, node: TreeNode, flag: any): string { const group: string = this.getGroupByGid(node.group).groupname; if (flag.has('G') || flag.has('o')) { - if (flag.has('n')) - return `${node.owner}`; + if (flag.has('n')) return `${node.owner}`; return `${owner}`; } if (flag.has('g')) { - if (flag.has('n')) - return `${node.group}`; + if (flag.has('n')) return `${node.group}`; return `${group}`; } - if (flag.has('n')) - return `${node.owner} ${node.group}`; + if (flag.has('n')) return `${node.owner} ${node.group}`; return `${owner} ${group}`; } @@ -201,6 +196,9 @@ function formatPermission(node: TreeNode): string { } function formatChildren(node: TreeNode): string { + if (node.type !== Type.Directory) return ' 0'; + if (!node.children) throw new Error('children array is null on this node'); + const c = node.children.length.toString(); return c.length > 1 ? c : ` ${c}`; } diff --git a/src/lib/stores/bash/fs.ts b/src/lib/stores/bash/fs.ts index 92aa794..71f7d44 100644 --- a/src/lib/stores/bash/fs.ts +++ b/src/lib/stores/bash/fs.ts @@ -1,6 +1,4 @@ -import type { readonly } from 'svelte/store'; import type { Permission, TimeStamps, User } from './bash'; -import { Stack } from '../stack'; export enum Type { Directory = 16384, @@ -57,22 +55,16 @@ export class VirtualFS { } private _iNodeToPathString(inode: number): string { - let components: Stack = new Stack(); - let currentNode = this.FsTable.get(inode); - let path: string = ''; - if (!currentNode) throw new Error('iNode does not exist,'); - - components.push(currentNode.name); + const currentNode = this.FsTable.get(inode); + if (!currentNode) + throw new Error('could not find the node in the fs table - inodetopathstring'); if (!currentNode.parent) { - for (let i = 0; i < components.size(); i++) { - path += components.pop() + '/'; - } - } else { - this._iNodeToPathString(currentNode.parent); + return '/'; } - return path; + const parentPath: string = this._iNodeToPathString(currentNode.parent); + return parentPath === '/' ? `/${currentNode.name}` : `${parentPath}/${currentNode.name}`; } //TODO: Make all backend methods NOT throw errors. Just return null, and let more closely connected with bash functions call throwError() so user can see the error. @@ -82,6 +74,8 @@ export class VirtualFS { const normalizedPath = path.replace(/^\/+|\/+$/g, ''); const pathComponents = normalizedPath.split('/').filter((component) => component.length > 0); + console.log(path, 'pathstringtoinode'); + if (pathComponents.length === 0) return this.rootINode; let currentNode = this.FsTable.get(this.rootINode); @@ -96,6 +90,8 @@ export class VirtualFS { currentNode = nextNode; } + + console.log(path, currentNode.inode); return currentNode.inode; } @@ -119,7 +115,9 @@ export class VirtualFS { } formatPath(path: string): string { + console.log(path, 'formatPath'); const prefix = this._iNodeToPathString(this.home); + if (path.startsWith(prefix)) { return path.replace(prefix, '~'); } else return path; @@ -127,18 +125,20 @@ export class VirtualFS { resolvePath(path: string): TreeNode { if (path === '/') return this.getNodeByINode(this.rootINode); + let parsedPath: string = path; if (!this._isAbsolutePath(path)) { const trail: string = this._iNodeToPathString(this.cwd); - path = trail + path; - } else if (path.startsWith('~')) { + parsedPath = `${trail}/${path}`; + console.log(parsedPath); + } + if (path.startsWith('~')) { const trail: string = this._iNodeToPathString(this.home); - path = trail + path; + parsedPath = `${trail}/${path.replace('~', '')}`; + console.log(parsedPath); } - console.log(path); - - const INode: number = this._pathStringToINode(path); + const INode: number = this._pathStringToINode(parsedPath); const Node: TreeNode = this.getNodeByINode(INode); return Node; diff --git a/src/lib/stores/bash/sort.ts b/src/lib/stores/bash/sort.ts index 96e98bd..766b4ea 100644 --- a/src/lib/stores/bash/sort.ts +++ b/src/lib/stores/bash/sort.ts @@ -1,7 +1,7 @@ -import type { TreeNode } from "./fs"; -import type { Bash } from "./bash"; +import type { TreeNode } from './fs'; +import type { Bash } from './bash'; -export enum SortBy { +export enum SortNodeBy { NAME, INODE, SIZE, @@ -9,17 +9,21 @@ export enum SortBy { TYPE, MTIME = 'mTime', ATIME = 'aTime', - CTIME = 'cTime', + CTIME = 'cTime' } export class Sort { - - public static nodeArraySort(this: Bash, nodes: TreeNode[] | number[], reverse: boolean = false, sortBy: SortBy = SortBy.NAME): TreeNode[] { - if(nodes.length === 0) throw new Error('Tried to sort an empty node array!'); + public static nodeArraySort( + this: Bash, + nodes: TreeNode[] | number[], + reverse: boolean = false, + sortBy: SortNodeBy = SortNodeBy.NAME + ): TreeNode[] { + if (nodes.length === 0) throw new Error('Tried to sort an empty node array!'); const parsedNodes: TreeNode[] = []; - - if(typeof nodes[0] === 'number') { - for(const inode of nodes as number[]) { + + if (typeof nodes[0] === 'number') { + for (const inode of nodes as number[]) { const node = this.getFs().getNodeByINode(inode); parsedNodes.push(node); } @@ -33,26 +37,37 @@ export class Sort { } } - private static nodeQSort(array: TreeNode[], reverse: boolean, sortBy: SortBy, start: number, end: number) { - if(end <= start) return; + private static nodeQSort( + array: TreeNode[], + reverse: boolean, + sortBy: SortNodeBy, + start: number, + end: number + ) { + if (end <= start) return; let pivot: number = this.nodePartition(array, reverse, sortBy, start, end); this.nodeQSort(array, reverse, sortBy, start, pivot - 1); this.nodeQSort(array, reverse, sortBy, pivot + 1, end); - } - private static nodePartition(part: TreeNode[], reverse: boolean, sortBy: SortBy, start: number, end: number): number { + private static nodePartition( + part: TreeNode[], + reverse: boolean, + sortBy: SortNodeBy, + start: number, + end: number + ): number { let pivot: TreeNode = part[end]; let i: number = start - 1; - + for (let j = start; j <= end; j++) { - if(this.nodeCompareElements(part[j], pivot, sortBy, reverse) < 0) { + if (this.nodeCompareElements(part[j], pivot, sortBy, reverse) < 0) { i++; let temp = part[i]; part[i] = part[j]; part[j] = temp; - } + } } i++; let temp = part[i]; @@ -62,12 +77,17 @@ export class Sort { return i; } - private static nodeCompareElements(a: TreeNode, b: TreeNode, sortBy: SortBy, reverse: boolean): number { - switch(sortBy) { - case SortBy.NAME: { + private static nodeCompareElements( + a: TreeNode, + b: TreeNode, + sortBy: SortNodeBy, + reverse: boolean + ): number { + switch (sortBy) { + case SortNodeBy.NAME: { const minLength = Math.min(a.name.length, b.name.length); - for(let i = 0; i < minLength; i++) { + for (let i = 0; i < minLength; i++) { const charCodeA = a.name.charCodeAt(i); const charCodeB = b.name.charCodeAt(i); @@ -77,25 +97,25 @@ export class Sort { } return reverse ? b.name.length - a.name.length : a.name.length - b.name.length; } - case SortBy.MTIME: - case SortBy.ATIME: - case SortBy.CTIME: { - // The sortBy serves as the lookup key in the timestamps object. + case SortNodeBy.MTIME: + case SortNodeBy.ATIME: + case SortNodeBy.CTIME: { + // The sortBy serves as the lookup key in the timestamps object. // It works because the times in SortBy enum have assigned values matching the names of the keys in the TreeNode object const timeA: number = a.timestamps[sortBy].getTime(); const timeB: number = b.timestamps[sortBy].getTime(); return reverse ? timeA - timeB : timeB - timeA; } - case SortBy.SIZE: { + case SortNodeBy.SIZE: { return reverse ? a.size - b.size : b.size - a.size; } - case SortBy.EXTENSION: { + case SortNodeBy.EXTENSION: { const extA: string = a.name.split('.').pop() ?? ''; const extB: string = b.name.split('.').pop() ?? ''; const minLength = Math.min(extA.length, extB.length); - for(let i = 0; i < minLength; i++) { + for (let i = 0; i < minLength; i++) { const charCodeA = extA.charCodeAt(i); const charCodeB = extB.charCodeAt(i); @@ -105,14 +125,14 @@ export class Sort { } return reverse ? extB.length - extA.length : extA.length - extB.length; } - case SortBy.INODE: { + case SortNodeBy.INODE: { return reverse ? b.inode - a.inode : a.inode - b.inode; } - case SortBy.TYPE: { + case SortNodeBy.TYPE: { return reverse ? b.type - a.type : a.type - b.type; } default: throw new Error(`Sorting basis outside of the declared scope. - `); } } -} +} diff --git a/src/lib/stores/terminal/init.svelte.ts b/src/lib/stores/terminal/init.svelte.ts index aae4677..73685cc 100644 --- a/src/lib/stores/terminal/init.svelte.ts +++ b/src/lib/stores/terminal/init.svelte.ts @@ -9,10 +9,10 @@ export function isInitializing(): boolean { } function jsonToNodeTable(data: any, parent?: number): Map { - const FsTable: Map = new Map; + const FsTable: Map = new Map(); const entryList = Object.entries(data); - for(let i = 0; i < entryList.length; i++) { + for (let i = 0; i < entryList.length; i++) { const object: any = entryList[i][1]; const node: TreeNode = { inode: object.Inode, @@ -48,7 +48,7 @@ function jsonToNodeTable(data: any, parent?: number): Map { cTime: new Date(object.TimeStamps.CTime), aTime: new Date(object.TimeStamps.ATime) }, - parent: object.parent + parent: object.Parent }; FsTable.set(object.Inode, node); diff --git a/src/lib/stores/terminal/terminal.ts b/src/lib/stores/terminal/terminal.ts index 900c18d..232e25b 100644 --- a/src/lib/stores/terminal/terminal.ts +++ b/src/lib/stores/terminal/terminal.ts @@ -85,7 +85,7 @@ export class Terminal { executeCommand(input: string): void { this.bash.updateHistory(input); const parsed: ParsedInput = this._parseInput(input); - console.log(parsed); + console.log(parsed, 'executeCommand output'); this.bash.executeCommand(parsed.command, parsed.args); } @@ -99,6 +99,7 @@ export class Terminal { getCwd(): string { const fs: VirtualFS = this.bash.getFs(); + console.log(fs.getPathByInode(this.bash.getCwd())); return fs.formatPath(fs.getPathByInode(this.bash.getCwd())); } diff --git a/src/modules/Terminal.svelte b/src/modules/Terminal.svelte index 426a503..653b5d7 100644 --- a/src/modules/Terminal.svelte +++ b/src/modules/Terminal.svelte @@ -19,6 +19,7 @@ switch (e.key) { case 'Enter': { terminal.executeCommand(inputValue); + updateTerminal(); break; } case 'ArrowRight': {