Implemented 'rm' and 'rmdir' commands

This commit is contained in:
Jakob Friedl
2025-07-08 21:09:50 +02:00
parent 92da6f1288
commit 4a5f3baaa4
5 changed files with 111 additions and 0 deletions

View File

@@ -203,6 +203,58 @@ proc taskDir*(task: Task): TaskResult =
status: Completed
)
except CatchableError as err:
return TaskResult(
task: task.id,
agent: task.agent,
data: encode(fmt"An error occured: {err.msg}" & "\n"),
status: Failed
)
# Remove file
proc taskRm*(task: Task): TaskResult =
let target = task.args.join(" ").replace("\"", "").replace("'", "")
echo fmt"Deleting {target}."
try:
# Get current working directory using GetCurrentDirectory
if DeleteFile(target) == FALSE:
raise newException(OSError, fmt"Failed to delete file ({GetLastError()}).")
return TaskResult(
task: task.id,
agent: task.agent,
data: encode(""),
status: Completed
)
except CatchableError as err:
return TaskResult(
task: task.id,
agent: task.agent,
data: encode(fmt"An error occured: {err.msg}" & "\n"),
status: Failed
)
# Remove directory
proc taskRmdir*(task: Task): TaskResult =
let target = task.args.join(" ").replace("\"", "").replace("'", "")
echo fmt"Deleting {target}."
try:
# Get current working directory using GetCurrentDirectory
if RemoveDirectoryA(target) == FALSE:
raise newException(OSError, fmt"Failed to delete directory ({GetLastError()}).")
return TaskResult(
task: task.id,
agent: task.agent,
data: encode(""),
status: Completed
)
except CatchableError as err:
return TaskResult(
task: task.id,

View File

@@ -38,6 +38,16 @@ proc handleTask*(task: Task, config: AgentConfig): TaskResult =
echo taskResult.data
return taskResult
of RemoveFile:
let taskResult = taskRm(task)
echo taskResult.data
return taskResult
of RemoveDirectory:
let taskResult = taskRmdir(task)
echo taskResult.data
return taskResult
else:
echo "Not implemented"
return nil