]> gitweb.factorcode.org Git - factor.git/commitdiff
file-monitor: command-line file change monitor.
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 20 Apr 2015 00:18:22 +0000 (17:18 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 20 Apr 2015 00:18:22 +0000 (17:18 -0700)
extra/file-monitor/file-monitor.factor [new file with mode: 0644]

diff --git a/extra/file-monitor/file-monitor.factor b/extra/file-monitor/file-monitor.factor
new file mode 100644 (file)
index 0000000..4010917
--- /dev/null
@@ -0,0 +1,21 @@
+! Copyright (C) 2015 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: accessors command-line formatting fry io io.monitors
+io.pathnames kernel namespaces sequences ;
+
+IN: file-monitor
+
+: file-monitor-loop ( monitor -- )
+    '[
+        _ next-change
+        [ changed>> ] [ path>> ] bi
+        "%u %s\n" printf flush t
+    ] loop ;
+
+: file-monitor-main ( -- )
+    command-line get ?first current-directory get or
+    dup "Monitoring %s\n" printf flush
+    [ t <monitor> file-monitor-loop ] with-monitors ;
+
+MAIN: file-monitor-main