1;;;
2;;; srfi-193 - Command line
3;;;
4;;;   Public Domain
5;;;
6
7(define-module srfi-193
8  (use file.util)
9  (export command-line command-name command-args
10          script-file script-directory))
11(select-module srfi-193)
12
13;; utility
14(define (filename->command-name path)
15  (cond-expand
16   [gauche.os.windows
17    (regexp-replace #/\.(exe|scm)$/ (sys-basename path) "")]
18   [else
19    (regexp-replace #/\.scm$/ (sys-basename path) "")]))
20
21;;; Fundamental
22
23;; command-line : Built-in
24;; script-file : Built-in
25
26;;; Derived
27
28(define (command-name)
29  (let1 arg0 (car (command-line))
30    (and (not (equal? arg0 ""))
31         (filename->command-name arg0))))
32
33(define (command-args)
34  (cdr (command-line)))
35
36(define (script-directory)
37  (and-let1 sf (script-file)
38    (string-append (sys-dirname sf) (string (path-separator)))))
39