Status: To Do
Fix Version/s: None
Component/s: Stack Documentation and UX
Krzysztof Findeisen [11:09 AM]
is there a standard place in the package layout for shell scripts? Do they go in `bin.src`?
Jim Bosch [11:11 AM]
I don't think there's any prior art (at least in the science pipelines corner of the codebase), but that sounds reasonable to me.
Russell Owen [11:16 AM]
I think non-Python scripts should go directly in `bin/`; only scripts that need the `#!` line processed need to go in `bin.src/`. But @timj might have an opinion. (edited)
I agree with this ^^.
It’s the way we went with the demo package.
So the git repository will have both `bin.src` and `bin` and the scripts that need the `#!` rework will be copied into `bin` when scons is run.
Krzysztof Findeisen [11:18 AM]
> only scripts that need the `#!` line processed need to go in `bin.src/`
I agree, but which ones need preprocessing?
Russell Owen [11:18 AM]
Python scripts only, as far as I know. In fact I don’t think any other scripts get processing.
As an aside: any script added to `bin.src` should have an entry in .gitignore for the copy that ends up in `bin`
If you are writing, say, bash scripts, I hope you will check that they operate correctly on macOS.
Robert Lupton [11:23 AM]
Why would bash scripts not work on macOS? I don't know of any SIP restrictions
Krzysztof Findeisen [11:24 AM]
See, e.g., https://github.com/lsst/validate_drp/blob/master/examples/processData.sh#L50-L54
Tim Jenness [12:32 PM]
Python scripts go in bin.src so they can get their shebang fixed. shell scripts go in bin/ since they are unfixable but you need to pass in LSST_LIBRARY_PATH yourself. (as you say above)