Scripts/net-notify.scm

31 lines
797 B
Scheme

(import scheme)
(import (chicken base))
(import srfi-1)
(import srfi-13)
(import socket)
(import (chicken process-context))
(define broadcast-socket #f)
(define bind-address (inet-address "0.0.0.0" #f))
(define broadcast-address (inet-address "255.255.255.255" 3742))
(define (broadcast-setup)
(set! broadcast-socket (socket af/inet sock/dgram))
(set! (so-broadcast? broadcast-socket) #t)
(socket-bind broadcast-socket bind-address))
(define (broadcast-send str)
(socket-send-to broadcast-socket str broadcast-address))
(define (main)
(let ((args (drop (argv) 1)))
(if (null? args)
(begin (display "usage: net-notify <message>")
(newline))
(begin (broadcast-setup)
(broadcast-send (string-concatenate (intersperse (cons "net-notify:" args) " ")))))))
(main)