49 lines
1.7 KiB
Scheme
49 lines
1.7 KiB
Scheme
(define-module (ordo interceptor apt)
|
|
#:use-module (ordo interceptor)
|
|
#:use-module ((ordo connection) #:select (run)))
|
|
|
|
(define noninteractive-env '(("DEBIAN_FRONTEND" . "noninteractive")
|
|
("APT_LISTCHANGES_FRONTEND" . "none")))
|
|
|
|
(define-syntax define-apt-interceptor
|
|
(syntax-rules ()
|
|
((define-apt-interceptor (name arg) apt-args ...)
|
|
(define-public (name arg)
|
|
(interceptor
|
|
(string-append (symbol->string 'name) " " arg)
|
|
#:enter (lambda (ctx)
|
|
(run (context-connection ctx) "apt-get" "-q" "-y" apt-args ... arg #:env noninteractive-env #:check? #t)))))
|
|
((define-apt-interceptor name apt-args ...)
|
|
(define-public (name)
|
|
(interceptor
|
|
(symbol->string 'name)
|
|
#:enter (lambda (ctx)
|
|
(run (context-connection ctx) "apt-get" "-q" "-y" apt-args ... #:env noninteractive-env #:check? #t)))))))
|
|
|
|
(define-apt-interceptor apt:update "update")
|
|
|
|
(define-apt-interceptor apt:upgrade "upgrade")
|
|
|
|
(define-apt-interceptor apt:dist-upgrade "dist-upgrade")
|
|
|
|
(define-apt-interceptor (apt:install package-name) "install")
|
|
|
|
(define-apt-interceptor (apt:install-minimal package-name) "install" "--no-install-recommends")
|
|
|
|
(define-apt-interceptor (apt:reinstall package-name) "reinstall")
|
|
|
|
(define-apt-interceptor (apt:remove package-name) "remove")
|
|
|
|
(define-apt-interceptor (apt:purge package-name) "purge")
|
|
|
|
(define-apt-interceptor (apt:build-dep package-name) "build-dep")
|
|
|
|
(define-apt-interceptor apt:clean "clean")
|
|
|
|
(define-apt-interceptor apt:autoclean "autoclean")
|
|
|
|
(define-apt-interceptor apt:distclean "distclean")
|
|
|
|
(define-apt-interceptor apt:autoremove "autoremove")
|
|
|
|
(define-apt-interceptor apt:autopurge "autopurge")
|