help-guix
[Top][All Lists]
Advanced

[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 !



reply via email to

[Prev in Thread] Current Thread [Next in Thread]