diff --git a/pkg-def.scm b/pkg-def.scm
index 9e6356d..57226a5 100644
--- a/pkg-def.scm
+++ b/pkg-def.scm
@@ -10,35 +10,38 @@ exec scsh -le ~a/load.scm -o install-lib -e install-main -s "$0" "$@"
END
)
-(define-package "install-lib" (1 1 0)
- ((options (bindir "Destination directory for executables" "
" #t #f #f
- ,identity ,identity)))
+(define-package "install-lib" (1 1 1)
+ ((options (bindir "Destination directory for executables" "" #t #f
+ ,(bin-dir) ,identity ,identity)))
+ ;; Install "package" part (doc & Scheme code)
+ (install-file "doc/install-lib.pdf" 'doc "pdf")
+ (install-files '("scheme/install-lib.scm"
+ "scheme/install-lib-version.scm"
+ "scheme/install-lib-module.scm")
+ 'scheme)
+ (write-to-load-script
+ `((config)
+ (load ,(absolute-file-name "install-lib-module.scm"
+ (get-directory 'scheme #f)))
+ (user)))
+
+ ;; Install "program" part (scsh-install-pkg script).
(let ((bindir (get-option-value 'bindir)))
- (if (not bindir)
- (display-error-and-exit
- "no binary directory specified (use --bindir option)."))
-
- ;; Install "package" part (doc & Scheme code)
- (install-file "doc/install-lib.pdf" 'doc "pdf")
- (install-files '("scheme/install-lib.scm"
- "scheme/install-lib-version.scm"
- "scheme/install-lib-module.scm")
- 'scheme)
- (write-to-load-script
- `((config)
- (load ,(absolute-file-name "install-lib-module.scm"
- (get-directory 'scheme #f)))
- (user)))
-
- ;; Install "program" part (scsh-install-pkg script).
(if (or (get-option-value 'dry-run) (get-option-value 'verbose))
(format #t "creating scsh-install-pkg script in ~a\n" bindir))
(if (not (get-option-value 'dry-run))
- (begin
- (create-directory&parents bindir #o755)
- (call-with-output-file (absolute-file-name "scsh-install-pkg" bindir)
- (lambda (port)
- (format port scsh-install-pkg-template (get-directory 'base #f))
- (set-file-mode port #o755)))))))
+ (let ((wrapper-name (absolute-file-name "scsh-install-pkg" bindir)))
+
+ (with-errno-handler
+ ((errno packet)
+ (else ((display-error-and-exit "cannot create wrapper script "
+ wrapper-name ":\n "
+ (first packet)))))
+
+ (create-directory&parents bindir #o755)
+ (call-with-output-file wrapper-name
+ (lambda (port)
+ (format port scsh-install-pkg-template (get-directory 'base #f))
+ (set-file-mode port #o755))))))))