|  | @@ -6,13 +6,11 @@
 | 
											
												
													
														|  |              [frontend.db :as db]
 |  |              [frontend.db :as db]
 | 
											
												
													
														|  |              [frontend.db.model :as model]
 |  |              [frontend.db.model :as model]
 | 
											
												
													
														|  |              [frontend.fs :as fs]
 |  |              [frontend.fs :as fs]
 | 
											
												
													
														|  | -            [frontend.fs.capacitor-fs :as capacitor-fs]
 |  | 
 | 
											
												
													
														|  |              [frontend.fs2.path :as fs2-path]
 |  |              [frontend.fs2.path :as fs2-path]
 | 
											
												
													
														|  |              [frontend.handler.editor :as editor]
 |  |              [frontend.handler.editor :as editor]
 | 
											
												
													
														|  |              [frontend.handler.file :as file-handler]
 |  |              [frontend.handler.file :as file-handler]
 | 
											
												
													
														|  |              [frontend.handler.page :as page-handler]
 |  |              [frontend.handler.page :as page-handler]
 | 
											
												
													
														|  |              [frontend.handler.ui :as ui-handler]
 |  |              [frontend.handler.ui :as ui-handler]
 | 
											
												
													
														|  | -            [frontend.mobile.util :as mobile-util]
 |  | 
 | 
											
												
													
														|  |              [frontend.state :as state]
 |  |              [frontend.state :as state]
 | 
											
												
													
														|  |              [frontend.util :as util]
 |  |              [frontend.util :as util]
 | 
											
												
													
														|  |              [frontend.util.fs :as fs-util]
 |  |              [frontend.util.fs :as fs-util]
 | 
											
										
											
												
													
														|  | @@ -51,7 +49,6 @@
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  (defn handle-changed!
 |  |  (defn handle-changed!
 | 
											
												
													
														|  |    [type {:keys [dir path content stat global-dir] :as payload}]
 |  |    [type {:keys [dir path content stat global-dir] :as payload}]
 | 
											
												
													
														|  | -  (prn ::wather payload)
 |  | 
 | 
											
												
													
														|  |    (when dir
 |  |    (when dir
 | 
											
												
													
														|  |      (let [;; Global directory events don't know their originating repo so we rely
 |  |      (let [;; Global directory events don't know their originating repo so we rely
 | 
											
												
													
														|  |            ;; on the client to correctly identify it
 |  |            ;; on the client to correctly identify it
 | 
											
										
											
												
													
														|  | @@ -128,28 +125,27 @@
 | 
											
												
													
														|  |                          (map first)
 |  |                          (map first)
 | 
											
												
													
														|  |                          (filter #(string/starts-with? % (config/get-repo-dir graph))))]
 |  |                          (filter #(string/starts-with? % (config/get-repo-dir graph))))]
 | 
											
												
													
														|  |        (p/let [files (fs/readdir dir :path-only? true)
 |  |        (p/let [files (fs/readdir dir :path-only? true)
 | 
											
												
													
														|  | -              _ (prn ::read-files files)
 |  | 
 | 
											
												
													
														|  | -              files (map #(fs2-path/relative-path dir %) files)       ;; FIXME(andelf): readdir returns full paths
 |  | 
 | 
											
												
													
														|  | -              files (remove #(fs-util/ignored-path? dir %) files)]
 |  | 
 | 
											
												
													
														|  | -        (let [deleted-files (set/difference (set db-files) (set files))]
 |  | 
 | 
											
												
													
														|  | -          (when (seq deleted-files)
 |  | 
 | 
											
												
													
														|  | -            (let [delete-tx-data (->> (db/delete-files deleted-files)
 |  | 
 | 
											
												
													
														|  | -                                      (concat (db/delete-blocks graph deleted-files nil))
 |  | 
 | 
											
												
													
														|  | -                                      (remove nil?))]
 |  | 
 | 
											
												
													
														|  | -              (db/transact! graph delete-tx-data {:delete-files? true})))
 |  | 
 | 
											
												
													
														|  | -          (doseq [file-rpath files]
 |  | 
 | 
											
												
													
														|  | -            (prn ::init-watcher file-rpath)
 |  | 
 | 
											
												
													
														|  | -            (when-let [_ext (util/get-file-ext file-rpath)]
 |  | 
 | 
											
												
													
														|  | -              (->
 |  | 
 | 
											
												
													
														|  | -               (p/let [content (fs/read-file dir file-rpath)
 |  | 
 | 
											
												
													
														|  | -                       stat (fs/stat dir file-rpath)
 |  | 
 | 
											
												
													
														|  | -                       type (if (db/file-exists? graph file-rpath)
 |  | 
 | 
											
												
													
														|  | -                              "change"
 |  | 
 | 
											
												
													
														|  | -                              "add")]
 |  | 
 | 
											
												
													
														|  | -                 (handle-changed! type
 |  | 
 | 
											
												
													
														|  | -                                  {:dir dir
 |  | 
 | 
											
												
													
														|  | -                                   :path file-rpath
 |  | 
 | 
											
												
													
														|  | -                                   :content content
 |  | 
 | 
											
												
													
														|  | -                                   :stat stat}))
 |  | 
 | 
											
												
													
														|  | -               (p/catch (fn [error]
 |  | 
 | 
											
												
													
														|  | -                          (js/console.dir error)))))))))))
 |  | 
 | 
											
												
													
														|  | 
 |  | +              files (map #(fs2-path/relative-path dir %) files)
 | 
											
												
													
														|  | 
 |  | +              files (remove #(fs-util/ignored-path? dir %) files)
 | 
											
												
													
														|  | 
 |  | +              deleted-files (set/difference (set db-files) (set files))]
 | 
											
												
													
														|  | 
 |  | +        (when (seq deleted-files)
 | 
											
												
													
														|  | 
 |  | +          (let [delete-tx-data (->> (db/delete-files deleted-files)
 | 
											
												
													
														|  | 
 |  | +                                    (concat (db/delete-blocks graph deleted-files nil))
 | 
											
												
													
														|  | 
 |  | +                                    (remove nil?))]
 | 
											
												
													
														|  | 
 |  | +            (db/transact! graph delete-tx-data {:delete-files? true})))
 | 
											
												
													
														|  | 
 |  | +        (doseq [file-rpath files]
 | 
											
												
													
														|  | 
 |  | +          (prn ::init-watcher file-rpath)
 | 
											
												
													
														|  | 
 |  | +          (when-let [_ext (util/get-file-ext file-rpath)]
 | 
											
												
													
														|  | 
 |  | +            (->
 | 
											
												
													
														|  | 
 |  | +             (p/let [content (fs/read-file dir file-rpath)
 | 
											
												
													
														|  | 
 |  | +                     stat (fs/stat dir file-rpath)
 | 
											
												
													
														|  | 
 |  | +                     type (if (db/file-exists? graph file-rpath)
 | 
											
												
													
														|  | 
 |  | +                            "change"
 | 
											
												
													
														|  | 
 |  | +                            "add")]
 | 
											
												
													
														|  | 
 |  | +               (handle-changed! type
 | 
											
												
													
														|  | 
 |  | +                                {:dir dir
 | 
											
												
													
														|  | 
 |  | +                                 :path file-rpath
 | 
											
												
													
														|  | 
 |  | +                                 :content content
 | 
											
												
													
														|  | 
 |  | +                                 :stat stat}))
 | 
											
												
													
														|  | 
 |  | +             (p/catch (fn [error]
 | 
											
												
													
														|  | 
 |  | +                        (js/console.dir error))))))))))
 |