devonfw / ide

Tool to automate setup and update of development environment (esp. for Java projects).
Apache License 2.0
35 stars 101 forks source link

ability to "download" custom software from mounted filesystem #1198

Closed hohwille closed 1 year ago

hohwille commented 1 year ago

We have added custom software feature that gives projects a great flexibility to add project specific software to their automated ide setup. However, currently this requires a remote repository where the software will be downloaded via curl. As a result all developers need to have access to a server where they can download the custom software from and this must not require authentication. In setups where different partners work together but the custom software repository may not be published on the internet this makes things tricky as all partners have to have access to that repository server via VPN or whatever.

The idea of this story is to also support file URLs for a custom software repository. In that case the file will not be "downloaded" but just "copied" (using cp instead of curl). The only trick is that the path to such mounted software repository needs to be configured somewhere and that may be tricky if you want to support multiple operating systems. E.g. for windows you might want to mount smb://software.mycompany.com to S: and e.g, configure S:\software as repository while on linux or MacOs this would need to be something rather like /mnt/software. I guess something could be done with symlinks or so to make it cross-platform or otherwise maybe a variable DEVON_CUSTOM_SOFTWARE_REPOSITORY could be used and define as the windows default in the template for conf/devon.properties so users of linux or mac could simply adopt this or set it as env variable before they run the setup.

Besides implementing the actual change here: https://github.com/devonfw/ide/blob/6ff96f5100e051fb003ec4c18ee6c39432150288/scripts/src/main/resources/scripts/command/ide#L386

We should also create a test setup of the scenario and verify that also a cross-platform solution is possible. Then we can also extend the custom software documentation with some hints how to do it.