Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-15792

Document how to package shell scripts in Stack packages


    • Team:


      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)


          Issue Links


            There are no comments yet on this issue.


              • Assignee:
                jsick Jonathan Sick
                jsick Jonathan Sick
                Jonathan Sick
              • Votes:
                0 Vote for this issue
                1 Start watching this issue


                • Created:

                  Summary Panel