Skip to content

Commit

Permalink
feat(cli-o): copy recursevly folders
Browse files Browse the repository at this point in the history
  • Loading branch information
Z-n-o-M committed Jan 5, 2023
1 parent 0252386 commit 994d763
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/cli/CodefendCLI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,8 @@ export class CodefendCLI implements ICodefendCLI {
}
console.log("Obfuscation started...");
await this.delay(500);
fileSystem.folderManager.removeFolder("./output");
fileSystem.folderManager.copyFolderSync("./input", "./output");
console.log("Obfuscation completed.");
}

Expand Down
21 changes: 21 additions & 0 deletions src/fs/folder/CodefendFolderManager.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import fs from "fs";
import path from "path";
import { ICodefendFolderManager } from "./ICodefendFolderManager";

export class CodefendFolderManager implements ICodefendFolderManager {
copyFolderSync(from: string, to: string) {
if (!fs.existsSync(to)) fs.mkdirSync(to);
fs.readdirSync(from).forEach((element) => {
if (element === "node_modules") return;
if (fs.lstatSync(path.join(from, element)).isFile()) {
fs.copyFileSync(path.join(from, element), path.join(to, element));
} else {
this.copyFolderSync(path.join(from, element), path.join(to, element));
}
});
}

removeFolder(path: string): void {
fs.rmSync(path, { recursive: true, force: true });
}
}
4 changes: 4 additions & 0 deletions src/fs/folder/ICodefendFolderManager.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export interface ICodefendFolderManager {
copyFolderSync(from: string, to: string): void;
removeFolder(path: string): void;
}
4 changes: 4 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { ICodefendFolderManager } from "./../build/src/fs/folder/ICodefendFolderManager.d";
import { CodefendCLI } from "./cli/CodefendCLI";
import { CodefendMapper } from "./core/mapper/CodefendMapper";
import { ICodefendMapper } from "./core/mapper/ICodefendMapper";
Expand All @@ -13,13 +14,15 @@ import { CodefendFileReader } from "./fs/file/reader/CodefendFileReader";
import { ICodefendFileReader } from "./fs/file/reader/ICodefendFileReader";
import { CodefendFileWriter } from "./fs/file/writer/CodefendFileWriter";
import { ICodefendFileWriter } from "./fs/file/writer/ICodefendFileWriter";
import { CodefendFolderManager } from "./fs/folder/CodefendFolderManager";
import { CodefendLogger } from "./logger/CodefendLogger";

export const logger = new CodefendLogger(defaultOptions);
export const cli = new CodefendCLI();
export const fileSystem: ICodefendFileSystem = {
fileWriter: new CodefendFileWriter(),
fileReader: new CodefendFileReader(),
folderManager: new CodefendFolderManager(),
};
export const codefendDefaultOptions = defaultOptions;

Expand Down Expand Up @@ -52,4 +55,5 @@ export interface ICodefendCore {
export interface ICodefendFileSystem {
fileWriter: ICodefendFileWriter;
fileReader: ICodefendFileReader;
folderManager: ICodefendFolderManager;
}

0 comments on commit 994d763

Please sign in to comment.