mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-27 11:27:04 +02:00
Fixed numerous reported bugs. Refactored some of the directory-related code. Added documentation for MasonDs changes to hack/grow/weaken
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* Helper functions that implement "directory" functionality in the Terminal.
|
||||
* These aren't "real" directories, it's more of a pseudo-directory implementation
|
||||
* that uses mainly string manipulation.
|
||||
*
|
||||
* This file contains function that deal with Server-related directory things.
|
||||
* Functions that deal with the string manipulation can be found in
|
||||
* ./DirectoryHelpers.ts
|
||||
*/
|
||||
import {
|
||||
isValidDirectoryPath,
|
||||
isInRootDirectory,
|
||||
getFirstParentDirectory,
|
||||
} from "./DirectoryHelpers";
|
||||
import { BaseServer } from "../Server/BaseServer";
|
||||
|
||||
/**
|
||||
* Given a directory (by the full directory path) and a server, returns all
|
||||
* subdirectories of that directory. This is only for FIRST-LEVEl/immediate subdirectories
|
||||
*/
|
||||
export function getSubdirectories(serv: BaseServer, dir: string): string[] {
|
||||
const res: string[] = [];
|
||||
|
||||
if (!isValidDirectoryPath(dir)) { return res; }
|
||||
|
||||
let t_dir = dir;
|
||||
if (!t_dir.endsWith("/")) { t_dir += "/"; }
|
||||
|
||||
function processFile(fn: string) {
|
||||
if (t_dir === "/" && isInRootDirectory(fn)) {
|
||||
const subdir = getFirstParentDirectory(fn);
|
||||
if (subdir !== "/" && !res.includes(subdir)) {
|
||||
res.push(subdir);
|
||||
}
|
||||
} else if (fn.startsWith(t_dir)) {
|
||||
const remaining = fn.slice(t_dir.length);
|
||||
const subdir = getFirstParentDirectory(remaining);
|
||||
if (subdir !== "/" && !res.includes(subdir)) {
|
||||
res.push(subdir);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const script of serv.scripts) {
|
||||
processFile(script.filename);
|
||||
}
|
||||
|
||||
for (const txt of serv.textFiles) {
|
||||
processFile(txt.fn);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
Reference in New Issue
Block a user