           ;; _ (println "ARGS: " args)
           ;; jargs (into-array String (conj jargs "build/exploded-app"))
 
+          target-dir (if service (str (-> (boot/get-env) :gae :module :app-dir)
+                                      "/target/"
+                                      (-> (boot/get-env) :gae :module :name))
+                         "target")
+
           checkout-vec (-> (boot/get-env) :checkouts)
           cos (map #(assoc (apply hash-map %) :coords [(first %) (second %)]) checkout-vec)
           default-mod (filter #(or (:default %) (not (:module %))) cos)

   m module MODULE str "module pfx"
   n gen-reloader-ns NS sym "ns for gen-reloader"
   r reloader-impl-ns NS sym "ns for reloader"
   w web-inf WEB-INF str "WEB-INF dir, default: WEB-INF"
   v verbose bool "Print trace messages."]
  (let [edn-tmp (boot/tmp-dir!)
        prev-pre (atom nil)
        web-inf (if web-inf web-inf web-inf-dir)

        module (or module (-> (boot/get-env) :gae :module :name))

        gen-reloader-ns (if gen-reloader-ns (symbol gen-reloader-ns) (gensym "reloadergen"))
        gen-reloader-path (str gen-reloader-ns ".clj")

  "watch etc. for gae project"
  [s service bool "service"
   v verbose bool "verbose"]
  ;;(let [mod (str (-> (boot/get-env) :gae :module :name))]
  (comp (builtin/watch)
        (builtin/notify :audible true)
        ;;(builtin/sift :move {#"(.*\.clj$)" (str (if mod (str mod "/")) classes-dir "/$1")})
        (builtin/sift :move {#"(.*\.clj$)" (str classes-dir "/$1")})
        (if service
          (target :no-clean true :service service :monitor true)
          (target :no-clean true :service service :monitor false))))

;; FIXME: not sure what this was for.  Just moving clj sources to the right output dir?
;; replaced by sifting?
