Add three new example scripts demonstrating the fswatch, sysinfo, and udp modules with file watching, system metrics, and UDP echo server/client patterns. Reorder the manual API sidebar navigation to list modules alphabetically, removing deprecated entries like websocket, tls, net, json, regex, jinja, os, signal, subprocess, sqlite, and timer while adding argparse, dataset, fswatch, and html.
55 lines
1.5 KiB
JavaScript
Vendored
55 lines
1.5 KiB
JavaScript
Vendored
// retoor <retoor@molodetz.nl>
|
|
|
|
import "fswatch" for FileWatcher, FsEvent
|
|
import "timer" for Timer
|
|
import "io" for File, FileFlags
|
|
|
|
System.print("=== FSWatch Module Demo ===\n")
|
|
|
|
var testFile = "/tmp/fswatch_demo.txt"
|
|
|
|
System.print("--- Setting up test file ---")
|
|
var f = File.openWithFlags(testFile, FileFlags.writeOnly | FileFlags.create | FileFlags.truncate)
|
|
f.writeBytes("initial content", 0)
|
|
f.close()
|
|
System.print("Created test file: %(testFile)")
|
|
|
|
System.print("\n--- Starting file watcher ---")
|
|
var watcher = FileWatcher.new(testFile)
|
|
var eventCount = 0
|
|
|
|
watcher.start { |event|
|
|
eventCount = eventCount + 1
|
|
System.print("Event %(eventCount):")
|
|
System.print(" Filename: %(event.filename)")
|
|
System.print(" Is rename: %(event.isRename)")
|
|
System.print(" Is change: %(event.isChange)")
|
|
}
|
|
|
|
System.print("Watcher active: %(watcher.isActive)")
|
|
|
|
System.print("\n--- Modifying file ---")
|
|
|
|
Timer.immediate {
|
|
var f2 = File.openWithFlags(testFile, FileFlags.writeOnly | FileFlags.truncate)
|
|
f2.writeBytes("first modification", 0)
|
|
f2.close()
|
|
System.print("Made first modification")
|
|
}
|
|
|
|
Timer.sleep(150)
|
|
|
|
Timer.immediate {
|
|
var f3 = File.openWithFlags(testFile, FileFlags.writeOnly | FileFlags.truncate)
|
|
f3.writeBytes("second modification", 0)
|
|
f3.close()
|
|
System.print("Made second modification")
|
|
}
|
|
|
|
Timer.sleep(150)
|
|
|
|
System.print("\n--- Stopping watcher ---")
|
|
watcher.stop()
|
|
System.print("Watcher active: %(watcher.isActive)")
|
|
System.print("Total events received: %(eventCount)")
|