From bc591dcedf45b80f70661f33c42c68dbd581e901 Mon Sep 17 00:00:00 2001 From: jdlugosz963 Date: Mon, 11 Aug 2025 17:36:57 +0200 Subject: Migrate to RDE --- files/.bin/whois-at-hsp | 84 ------------------------------------------------- 1 file changed, 84 deletions(-) delete mode 100755 files/.bin/whois-at-hsp (limited to 'files/.bin/whois-at-hsp') diff --git a/files/.bin/whois-at-hsp b/files/.bin/whois-at-hsp deleted file mode 100755 index 982a90e..0000000 --- a/files/.bin/whois-at-hsp +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env -S guix shell guile guile-json -- guile --no-auto-compile -e main -s --*- scheme -*- -!# - -(use-modules (srfi srfi-1) - (ice-9 iconv) - (ice-9 receive) - (web client) - (json)) - -(define whois-at-hsp-endpoint "https://whois.at.hsp.sh/api/now") - -(define (http-get-serialize-json url) - (receive (response data) (http-request url) - (values (json-string->scm (bytevector->string data "UTF-8")) - response))) - -(define (whois-data->users whois-data) - (assoc-ref whois-data "users")) - -(define (whois-data->unknown-devices whois-data) - (assoc-ref whois-data "unknown_devices")) - -(define (whois-data->head-count whois-data) - (assoc-ref whois-data "headcount")) - -(define (whois-data->formated-users whois-data) - (let ((users (vector->list (whois-data->users whois-data)))) - (if (> (length users) 0) - (fold-right - (lambda (a b) (string-append a " " b)) - "" - users) - "No visible users!"))) - -(define (whois-data->summary whois-data) - (string-append - "Unknown devices: " - (number->string (whois-data->unknown-devices whois-data)) - "\nUsers: [" (number->string (whois-data->head-count whois-data)) "] " - (whois-data->formated-users whois-data))) - -(define (notify data) - (system* "notify-send" - "WHOIS AT HSP" - (whois-data->summary data))) - -(define (command-line-option? option args) - (> (length (or (member option args) - '())) - 0)) - -(define-syntax-rule (command-line-args-handle args default ((option ...) body ...) ...) - (let ((option? (lambda (o) (command-line-option? o args)))) - (cond ((or (option? option) ...) body ...) ... - (#t default)))) - -;; (command-line-args-handle '("a" "--help") -;; 0 -;; (("-h" "--help") "dupa")) - -(define (main args) - (let ((whois-data (http-get-serialize-json whois-at-hsp-endpoint))) - (command-line-args-handle args - (begin (display (whois-data->summary whois-data)) - (newline)) - (("-h" "--help") - (display (string-append "-h, --help Help message\n" - "-n, --notify Notification massage with whois information.\n" - "-u Get users\n" - "-H Get head count\n" - "-U Get unknown devices\n"))) - (("-n" "--notify") - (notify whois-data)) - (("-u") - (display (whois-data->formated-users whois-data)) - (newline)) - (("-H") - (display (whois-data->head-count whois-data)) - (newline)) - (("-U") - (display (whois-data->unknown-devices whois-data)) - (newline))))) - -- cgit v1.2.3