dodo: Support Sketch agent

Change-Id: I4dcd6aab7d7a2c2e86aaf1ad8d36d30a649ab31d
diff --git a/apps/app-runner/main.go b/apps/app-runner/main.go
index 96a647e..ebd0ef8 100644
--- a/apps/app-runner/main.go
+++ b/apps/app-runner/main.go
@@ -21,6 +21,7 @@
 var port = flag.Int("port", 3000, "Port to listen on")
 var appId = flag.String("app-id", "", "Application ID")
 var service = flag.String("service", "", "Service name")
+var agentMode = flag.Bool("agent-mode", false, "Sketch agent mode")
 var repoAddr = flag.String("repo-addr", "", "Git repository address")
 var branch = flag.String("branch", "", "Name of the branch to process")
 var rootDir = flag.String("root-dir", "/", "Path to the app code")
@@ -104,8 +105,10 @@
 			panic(err)
 		}
 	}
-	if err := os.Mkdir(*appDir, os.ModePerm); err != nil {
-		panic(err)
+	if !*agentMode {
+		if err := os.Mkdir(*appDir, os.ModePerm); err != nil {
+			panic(err)
+		}
 	}
 	r, err := os.Open(*runCfg)
 	if err != nil {
@@ -116,7 +119,7 @@
 	if err := json.NewDecoder(r).Decode(&cmds); err != nil {
 		panic(err)
 	}
-	s := NewServer(*port, *appId, *service, id, *repoAddr, *branch, *rootDir, signer, *appDir, cmds, self, *managerAddr)
+	s := NewServer(*agentMode, *port, *appId, *service, id, *repoAddr, *branch, *rootDir, signer, *appDir, cmds, self, *managerAddr)
 	if err := s.Start(); err != nil {
 		log.Fatal(err)
 	}