cargo-aur icon indicating copy to clipboard operation
cargo-aur copied to clipboard

Installing data into /usr/local/share

Open nms-scribe opened this issue 2 years ago • 10 comments

My project includes some data (mostly sample files) which I would like my aur package to install into /usr/local/share/<appname>. Can cargo-aur be configured to include these files in the tar file in a way that they would be copied into the right place on install?

nms-scribe avatar Oct 18 '23 00:10 nms-scribe

That's a reasonable request. Perhaps something like:

[package.metadata.aur]
files = [
  ["/path/to/original/file", "/absolute/path/to/desired/location"],
  # ... and so on ...
]

Any thoughts? Naturally at some point some complexity threshold is crossed and it becomes faster for everyone to just say "manage the PKGBUILD yourself", but in this case I think this could be implemented with little toil.

fosskers avatar Oct 18 '23 01:10 fosskers

That would be the preferred configuration for me.

nms-scribe avatar Oct 18 '23 02:10 nms-scribe

Since I wanted this soon and didn't want to bother you, I (forked your project)[https://github.com/nms-scribe/cargo-aur] to add that functionality. You're welcome to fetch the changes out of that if you haven't started working on your own. I don't know if I did it the way you would have done it.

Thanks for the useful tool.

nms-scribe avatar Oct 18 '23 17:10 nms-scribe

Would it make sense to also add some light templating, @fosskers ? I assume stuff like {app_name} and {version} should be usable from those strings, possibly even with package information like release date, etc. tinytemplate or full on askama could be good fits.

Also, if you'd like someone to try and take this on I'd be happy to (after looking at what @nms-scribe has started)

t3hmrman avatar Oct 19 '23 09:10 t3hmrman

@t3hmrman What sort of templating? Can you provide a sample [package.metadata.aur] that includes some of what you're imagining?

@nms-scribe I will add this feature as soon as I'm able.

fosskers avatar Oct 23 '23 05:10 fosskers

Hey @fosskers, using your example earlier -- I was thinking something like this:

files = [
  ["/path/to/config.example.toml", "/etc/{app_name}/{version}/config.example.toml"],
  # ... and so on ...
]

Maybe it's not necessary (package authors could just maintain every single version and grow the list), but planning for such a feature might be nice.

t3hmrman avatar Oct 23 '23 12:10 t3hmrman

Ah I see what you mean. Actually... if you wanted to be really clever, you could put PKBUILD bash-based placeholders in the target string yourself! Like /etc/$pkgname/$pkgver/.... cargo aur would just copy the target string as-is, and you'd get the best of both worlds I think.

fosskers avatar Oct 24 '23 01:10 fosskers

Ahh thanks! this makes sense -- so this would basically already be supported. thanks for making me aware of that!

t3hmrman avatar Oct 24 '23 03:10 t3hmrman

so this would basically already be supported

As soon as I implement the original feature itself, yeah.

fosskers avatar Oct 24 '23 05:10 fosskers

Update: I have this scheduled to work on in mid-December.

fosskers avatar Nov 21 '23 01:11 fosskers

@nms-scribe Can you take a look at https://github.com/fosskers/cargo-aur/pull/24 and see if it's comparable to what you implemented?

fosskers avatar Mar 05 '24 05:03 fosskers

I'm not in a place where I can test it right now. Reviewing the code and docs, it looks fine.

There are some differences in implementation (for example, I hard-coded the $pkgbuild variable, and added a file-copy that I realize is probably not necessary), but I can change my project to work with the differences.

nms-scribe avatar Mar 06 '24 21:03 nms-scribe

Released as 1.7.0.

fosskers avatar Mar 07 '24 11:03 fosskers