Implemented move and copy command. Needs to be reworked to work without `-f' and '-t' flags but with spaces.

This commit is contained in:
Jakob Friedl
2025-07-09 15:13:37 +02:00
parent bb56ed42f2
commit 2d2c94ed38
5 changed files with 91 additions and 3 deletions

View File

@@ -39,6 +39,16 @@ var parser = newParser:
help("Remove directory.")
arg("directory", help="Relative or absolute path to the directory to delete.", nargs = -1)
command("move"):
help("Move a file or directory.")
option("-f", "--from", help="Original file name.", required=true)
option("-t", "--to", help="New file name.", required=true)
command("copy"):
help("Copy a file or directory.")
option("-f", "--from", help="Original file name.", required=true)
option("-t", "--to", help="New file name.", required=true)
command("bof"):
help("Execute COFF or BOF file (.o) in memory.")
arg("file", help="Local path to object file.", nargs = 1)
@@ -93,6 +103,12 @@ proc handleAgentCommand*(cq: Conquest, args: varargs[string]) =
of "rmdir":
cq.taskRemoveDirectory(opts.rmdir.get.directory)
of "move":
cq.taskMove(opts.move.get.from, opts.move.get.to)
of "copy":
cq.taskCopy(opts.copy.get.from, opts.copy.get.to)
of "bof":
cq.taskExecuteBof(opts.bof.get.file, opts.bof.get.arguments)

View File

@@ -55,6 +55,14 @@ proc taskRemoveDirectory*(cq: Conquest, arguments: seq[string]) =
let payload = %*{ "directory": arguments.join(" ").replace("\"").replace("'")}
cq.createTask(RemoveDirectory, $payload, "Tasked agent to remove directory.")
proc taskMove*(cq: Conquest, oldPath, newPath: string) =
let payload = %*{ "from": oldPath, "to": newPath}
cq.createTask(Move, $payload, "Tasked agent to move a file or directory.")
proc taskCopy*(cq: Conquest, oldPath, newPath: string) =
let payload = %*{ "from": oldPath, "to": newPath}
cq.createTask(Copy, $payload, "Tasked agent to copy a file or directory.")
proc taskExecuteBof*(cq: Conquest, file: string, arguments: seq[string]) =
# Verify that the object file exists