Hi Wolf, Similar to what I was trying, which didn't work. I'll try to have a go one evening and try and work out where I went wrong.
Thanks again. Graham On Mon, 5 Jun 2023 at 18:35, wolf <w...@wolfsden.cz> wrote: > > On 2023-06-05 16:37:50 +0100, Graham Addis wrote: > > Hi Wolf, > > > > Not a particularly successful weekend... > > > > As --entry-point was used by other pack methods I thought the best > > option would be to add a --docker-entry-point just for the docker > > format and pass it into the build as an extra-option like for deb and > > rpm formats. > > > > However I couldn't work out how to pass in a list via the > > extra-options, so I'm a bit stuck. > > > > If there is anyone who knows their way around the pack scripts and can > > point me in the right direction, that would help, but other than that > > I'll probably get some more time next weekend. > > I did not try to implement this, so my guess might be completely off, but > looking at how -S is implemented, I would suggest trying something like: > > 1. Introducing new %docker-format-options and friends (similar to already > existing %deb-format-options and friends), providing the --entry-point-arg > options, that would be specific to a docker format (although I am not sure > if > it needs to be specific, maybe some other formats support arguments as > well?). > 2. Writing entry-point-arg-spec-option-parser, while taking inspiration from > symlink-spec-option-parser. Yours would be much simpler, since you would > be > just accumulating values into a list. > > As for the extra-options, I guess modifying current code (by adding the > 'docker > option) into something like: > > (extra-options (match pack-format > ('deb > (list #:control-file > (process-file-arg opts 'control-file) > #:postinst-file > (process-file-arg opts 'postinst-file) > #:triggers-file > (process-file-arg opts 'triggers-file))) > ('docker > (list #:entry-point-args > (process-file-arg opts 'entry-point-arg))) > ('rpm > (list #:relocatable? relocatable? > #:prein-file > (process-file-arg opts 'prein-file) > #:postin-file > (process-file-arg opts 'postin-file) > #:preun-file > (process-file-arg opts 'preun-file) > #:postun-file > (process-file-arg opts 'postun-file))) > (_ '()))) > > could work? build-docker-image already accepts a list as an #:entry-point, so > it should be just a matter of properly composing the list. > > Not sure if this is helpful. > > W. > > > > > Graham > > > > On Fri, 2 Jun 2023 at 09:13, Graham Addis <grahamjamesad...@gmail.com> > > wrote: > > > > > > Hi Wolf, > > > > > > On Thu, 1 Jun 2023 at 22:55, wolf <w...@wolfsden.cz> wrote: > > > > > > > > On 2023-05-31 18:47:03 +0100, Graham Addis wrote: > > > > > I could use the equivalent format for --entry-point > > > > > > > > > > --entry-point executable --entry-point param1 --entry-point param2 > > > > > > > > > I think that is a reasonable idea. Only downside is that it would not > > > > be > > > > backwards compatible (since currently last --entry-point wins), however > > > > I am not > > > > sure if someone actually relies on that behavior. > > > > > > > > Backwards compatible way would be keeping --entry-point as it is and > > > > introducing > > > > new argument (--entry-point-arg) that could be used to build the > > > > argument list, > > > > but I might be overthinking it :). > > > > > > I'll go with extending --entry-point to accept multiple values and use > > > all of them for --format=docker and simply use the last one provided > > > for the other formats. > > > > > > I'll try to put a patch together at the weekend. > > > > > > Thanks for all your input, it really helps. > > > > > > Graham > > > > -- > There are only two hard things in Computer Science: > cache invalidation, naming things and off-by-one errors.