[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Make a simple guile script to a package - source local file
From: |
Théo Tyburn |
Subject: |
Re: Make a simple guile script to a package - source local file |
Date: |
Sat, 20 Jan 2024 17:19:05 +0000 |
Hi Felix,
Felix Lechner <felix.lechner@lease-up.com> writes:
> Hi Théo,
>
> On Fri, Jan 19 2024, Théo Tyburn wrote:
>
>> How do I go about packaging it to make the script available from the command
>> line
>> without polluting the environment with the dependencies ?
>
> The best way is wrap-program, or my forthcoming wrap-executable.
>
> Kind regards
> Felix
This is what I was looking for, thanks !
If someone is interested, here is my function to wrap a python script in a
package:
#+BEGIN_SRC scheme
(define*-public (python-script-package name source-dir source-file #:key
(inputs '()))
(package
(name name)
(version "")
(source (local-file (string-append source-dir "/" source-file) #:recursive?
#t))
(build-system copy-build-system)
(inputs (cons python inputs))
(arguments (list #:install-plan #~'((#$source-file #$(string-append "bin/"
name)))
#:phases
`(modify-phases %standard-phases
(add-after 'strip
'wrap-python-scripts
(lambda* (#:key outputs
#:allow-other-keys)
;; Make sure program runs
with the correct PYTHONPATH.
(wrap-program
(search-input-file outputs (string-append "bin/" ,name))
`("GUIX_PYTHONPATH" ":"
prefix (,(getenv
"GUIX_PYTHONPATH")))))))))
(home-page "")
(synopsis "")
(description "")
(license license:lgpl3+)))
#+END_SRC
It works like a charm with my guix home declaration :)
Happy hacking !