-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Option to Install only specific programs #76
Comments
Wondering what might be the best way to implement this, at least for the major libraries like anaconda, etc @aswinkumar1999 @rajat2004 what's your take, command line arguments, or a menu like this or using ncurses, or something else? |
IMO, env variables might be the better way to go about this, similar to how Having a dialog requires user input, which could cause problems when running non-interactively such as Docker, plus just executing the script and then just going somewhere while it runs is nice :) Something like |
I feel like it would be better with a menu like a dialog box, something like a Python wrapper for all the scripts.
I am not sure if i understand the above properly because i feel like adding Python to it could possible allow us to some parts of Install Dynamic, such as compiling OpenCV for the specific GPU Arch for CUDA and Fetching the Latest CUDA and other conditional steps which would be hard with bash. Thought the possibilities are a lot, I guess initially it will be slightly painful the make the complete switch. |
Problem with command-line arguments in a shell script I think is that it's very painful to deal with. One or 2 options such as Python would be simpler here, with libraries like But apart from this, right now I'm not seeing many more benefits of going with Python. Most of the things being done are shell commands, which in Python would require using Even getting details like specific GPU arch, etc. will mostly require using shell commands, and piping + options like This is just my current thinking, would love to have your ideas on how to go about all this, places where I'm wrong, other options, etc. |
So Me and @rajat2004 had a talk, and I realised how indescriptive my previous comment, I'm adding this as a followup comment with an example. So , When I meant
I meant it more like a top-level one where the scripts stay the same and python is going to act like a parser deciding which lines of the bash script is it is gonna run. Ex: I'm taking the Basics scripts.
And this .
.
.
####### ZSH ( parameters) ########
~ All commands needed to install ZSH go Here ~
###### END ########
.
####### Git ########
execute sudo apt-get install git -y
###### END ########
.
. To put it simply, this python code will then look into the Kind of like a Function call. And say adding an argument like :
Will Disable Interactive mode completely and will get the entire script running. And for the Feasibility check, most part of it should be fine but I am not exactly sure about handling Environment Variables here. And
+1 |
@aswinkumar1999 This would be a wonderful feature. I am not sure if this is done or not! But I did come across a python package called inquirer which basically gives a nice list of options with the option of multi-selecting them (using the right arrow). Like for example:
|
This does sound like a promising lead now. Only part where I'm still unsure in is if there's some drawback in converting the whole script to a Python script that we're missing Any opinions @rajat2004 @aswinkumar1999 @MukundVarmaT? |
I am not sure but how do we ensure that the user has packages required to run the python setup scripts. Like in the above case, how will a user have the package inquirer already installed on their system? There is something called pyinstaller and it creates a self-contained executable file with all the required libraries etc etc. So the person running it need not even have python on their system to run the executable. Not sure why I brought this up but I guess we need to look at something similar to that. |
Yeah, I came across two ideas.
|
Option 2 might add some otherwise avoidable overhead. As suggested by everyone on this thread, we could make Python an interactive parser for choosing which components of the script get installed, and use |
Sure count me in. Let me know how I can help. |
+1 Sure , Let's do this.... I do have certain questions before we proceed.
|
Some thoughts (if this is still being actively pursued):
Command line > YAML > Defaults (use a function to successively, similar to what sacred or hydra does, although very different objectives).
Again, might be not-so-important. |
Is it possible to cross-compile Go programs for different platforms? Also, we need people proficient in
The major hurdle in both this method as well as writing a configuration-setter in Python is to build a parser / reuse some parser that's already out there. Haven't gotten around to looking that up yet.
Good point, this would be a deal breaker. If something's being written in Python, this'll have to be taken into consideration. I'm also wondering what is to be done in OS images / docker images where Python doesn't come out of the box (In the Alpine images for instance). But I guess we can't cater to all use cases |
Thought the setup scripts are made for quick setups, I would prefer the option of choosing or ignoring certain programs, Especially
Anaconda
in my case.Would be cool if we can have a menu where the default is to install everything and we get an option to not install certain programs.
The text was updated successfully, but these errors were encountered: