Our great sponsors
-
ezinnit
ezinnit initializes your gitlab repository and your server. Your app will be live and commits to main will automatically deploy.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Beyond what I've already said, I would refer you to look at how, e.g. Homebrew install.sh (and other repos in that project) handle a comparable setup. You can see a lot of what I have been flagging in there: tests, functions, comments, not making permanent changes outside remit, etc.
Let's tale a real world example- I use Homebrew and I have used chocolatey where I have had to use a Windows machine. Both of these use shell scripts for initial setup and both of them have a 'stub' one-liner that you can paste into your system shell and calls remote scripts. I feel that I can trust the reputation of each of these projects and that if I wished I could inspect the full script myself. Not everyone would and there are techniques in each case for confining these tools. I don't know you or the reputation of your project, or the licenses for these third party package install scripts. I would suggest that you concentrate on making it as easy as possible for your user to: - install/use your thing - inspect what your thing does
Let's tale a real world example- I use Homebrew and I have used chocolatey where I have had to use a Windows machine. Both of these use shell scripts for initial setup and both of them have a 'stub' one-liner that you can paste into your system shell and calls remote scripts. I feel that I can trust the reputation of each of these projects and that if I wished I could inspect the full script myself. Not everyone would and there are techniques in each case for confining these tools. I don't know you or the reputation of your project, or the licenses for these third party package install scripts. I would suggest that you concentrate on making it as easy as possible for your user to: - install/use your thing - inspect what your thing does