public function generate(WorkPackage $work)
    {
        $description = $work->getTaskDescription();
        $command =$description->getCommand();
        if (!$this->isValidCommand($command)) {
            throw new TaskCommandGeneratorException("This command is not usable '{$command}' is not valid");
        }
        $cmd = escapeshellarg($command);
        $cmd .= $this->generateArguments($description);
        $cmd .= $this->generateOptions($description);
        return $cmd;
    }