summaryrefslogtreecommitdiff
path: root/modules/python.in
diff options
context:
space:
mode:
Diffstat (limited to 'modules/python.in')
-rwxr-xr-xmodules/python.in29
1 files changed, 29 insertions, 0 deletions
diff --git a/modules/python.in b/modules/python.in
new file mode 100755
index 0000000..1dad073
--- /dev/null
+++ b/modules/python.in
@@ -0,0 +1,29 @@
+#!@GUILE@ \
+--no-auto-compile -e main -s
+!#
+
+(use-modules (ice-9 match)
+ (language python spec)
+ (language python module python)
+ (system repl common)
+ (system repl repl))
+
+(define* (main #:optional (args (command-line)))
+ (match args
+ ((_ file)
+ (let ((compiled (string-append file ".go")))
+ (compile-file file
+ #:from python
+ #:output-file compiled)
+ (load-compiled compiled)))
+ ((_)
+ (repl-default-option-set! 'prompt ">>> ")
+ (set! (@@ (system repl common) repl-welcome)
+ (const (display "\
+Python on Guile, version @VERSION@
+(Hit Ctrl-D to exit.)
+")))
+ (start-repl python)
+ #t)
+ (_ (format (current-error-port)
+ "usage: ~a file.py~%" this))))