diff options
author | Aleix Conchillo FlaquƩ <aconchillo@gmail.com> | 2022-01-21 16:06:59 -0800 |
---|---|---|
committer | Aleix Conchillo FlaquƩ <aconchillo@gmail.com> | 2022-01-21 16:06:59 -0800 |
commit | cd8040b0d40a2c262a0491a498714f32663377b4 (patch) | |
tree | 34efda3e47e1c2aa6ecfe6823bef73c55f5dd9c4 | |
parent | 9d856378f6e708849b1896fffe7817edf50d71cd (diff) |
pass -e to evaluate guilescript as argument
For example:
gas -e '(.playpause (Application "Spotify"))'
-rw-r--r-- | NEWS | 9 | ||||
-rwxr-xr-x | gas | 22 |
2 files changed, 21 insertions, 10 deletions
@@ -0,0 +1,9 @@ +* Version 0.1.0 (??, 2022) + + - Added trivial Spotify example. + + - You can now evaluate code with `-e` argument. + +* Version 0.0.0 (Jan 21, 2022) + + - Initial release. @@ -34,26 +34,28 @@ exec guile -e "(@@ (gas) main)" -s "$0" "$@" #:use-module (ice-9 textual-ports) #:use-module (language guilescript compile)) -(define (compile-gas filename) - (let ((js (compile-file filename)) - (port (mkstemp "/tmp/gas-XXXXXX"))) +(define (run-osascript js) + (let* ((port (mkstemp "/tmp/gas-XXXXXX")) + (tmpfile (port-filename port))) (chmod port #o700) (put-string port (string-append "#!/usr/bin/osascript -l JavaScript\n\n" js)) - port)) - -(define (run-gas filename) - (let* ((port (compile-gas filename)) - (tmpfile (port-filename port))) (close-port port) (system tmpfile) (delete-file tmpfile))) +(define (run-string str) + (run-osascript (compile (call-with-input-string str read-syntax)))) + +(define (run-file filename) + (run-osascript (compile-file filename))) + (define main (match-lambda + ((_ "-e" str) (run-string str)) + ((_ filename) (run-file filename)) ((_) (display "Usage: gas filename.gs") (newline) - (exit 1)) - ((_ filename) (run-gas filename)))) + (exit 1)))) |