#! /usr/bin/guile \ --no-auto-compile -e main -s !# ;; bin/pinentry-rofi --- pinentry-rofi cli -*- coding: utf-8 -*- ;; Copyright © 2016 Quentin "Sardem FF7" Glidic ;; Copyright © 2018-2020 Fredrik "PlaTFooT" Salomonsson ;; ;; Permission is hereby granted, free of charge, to any person obtaining a copy ;; of this software and associated documentation files (the "Software"), to deal ;; in the Software without restriction, including without limitation the rights ;; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ;; copies of the Software, and to permit persons to whom the Software is ;; furnished to do so, subject to the following conditions: ;; ;; The above copyright notice and this permission notice shall be included in ;; all copies or substantial portions of the Software. ;; ;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ;; THE SOFTWARE. (use-modules (ice-9 getopt-long) (ice-9 format) (pinentry-rofi)) (define (main args) (let* ((option-spec '((display (single-char #\d) (value #t)) (xauthority (single-char #\a) (value #t)) (version (single-char #\v) (value #f)) (log (value #t)) (help (single-char #\h) (value #f)))) (default-display ":0") (options (getopt-long (command-line) option-spec)) (pinentry (make-pinentry #t "Passphrase:" "Ok" "Cancel" (option-ref options 'display default-display) (let ((logfile (option-ref options 'log #f))) (when logfile (open-output-file (format #f "~a.~a" logfile (getpid)))))))) (when (option-ref options 'help #f) (format #t "\ Usage: ~a [OPTIONS] Options: -d, --display DISPLAY Set display, default is ~s. --log LOGFILE Log unknown commands to LOGFILE -v, --version Display version. -h, --help Display this help. Author: @AUTHOR@ " (car (command-line)) default-display) (exit #t)) (when (option-ref options 'version #f) (format #t "@HVERSION@\n") (exit #t)) (format #t "OK Please go ahead\n") (force-output) (pinentry-loop pinentry (current-input-port))))