From 45bb0d11161b1c5077a1415eed6dbd0fd25ccb6a Mon Sep 17 00:00:00 2001 From: jdlugosz963 Date: Fri, 20 Sep 2024 14:16:56 +0200 Subject: Change dotfiles structure, and add guix-channels declaration. --- .bin/whois-at-hsp | 84 ------------------------------------------------------- 1 file changed, 84 deletions(-) delete mode 100755 .bin/whois-at-hsp (limited to '.bin/whois-at-hsp') diff --git a/.bin/whois-at-hsp b/.bin/whois-at-hsp deleted file mode 100755 index 0cd03f7..0000000 --- a/.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))) - (something-executed? #f)) - (when (or (option? option) ...) - (set! something-executed? #t) - body ...) ... - (when (not something-executed?) - default))) - -(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