6 releases
new 0.1.3 | Jan 29, 2023 |
---|---|
0.1.2 | Jan 24, 2023 |
0.0.3 | Jan 22, 2023 |
#71 in Configuration
105 downloads per month
22KB
467 lines
ginst
ginst (short for generic installer) a tool used to install programs according to self written configurations.
The tool takes a .json
file and tries to execute the commands given.
Note: It's currently only tested on Linux.
Requirements
- rust (cargo)
- bash
Installation
Ez mode
cargo install ginst
or if you want to build it yourself:
git clone https://github.com/Sebbito/ginst.git
cd ginst
carbo build -r
cp target/release/ginst ~/.local/bin
on the last step you can copy it to any directory that is included in PATH but i suggest you use .local/bin
for that.
Usage
ginst --file path/to/programs.json
Use
k
h l
j
or
^
<- ->
v
to move through the menu.
The l
or ˃
to go a level down and view the dependencies and h
or ˂
to go one level back up.
Further keybinds are:
i
orenter
to execute the installation instructions for the programc
to execute the configuration stepsq
to quit (goes up one level if you're in a submenu)
Configuring
Right now the only way to configure the tool is through the programs.json
file (which has to be in the working dir). There you can specify a program with installations per distribution and dependencies.
See the example.json
on how ginst
expects the .json
to look like.
The .json
file has the following structure:
{
"programs": [
...
]
}
Where each program has a structure of:
{
"name": "<name>",
"installation": {
"<dist-name1>,<dist-name2>": [
"<bash-command1>",
"<bash-command2>"
]
},
"configuration": {
"<dist-name1>,<dist-name2>": [
"<bash-command1>",
"<bash-command2>"
]
},
"dependencies": {
"programs": [
...
]
}
}
Some things that are worth noting:
- The dependencies attribute is also just a list of programs, meaning you can add as many dependencies and nest this as deep as you want to.
- Also there is the option to specify multiple distributions in one line separated by commas !without spaces! for which the installation instructions apply
- You can also use a '*' instead of a regular distribution name to execute the steps for all distros
- The distribution will be read out of
/etc/os-release
so make sure you name it like you see it in there
Troubleshooting
Q: The program doesn't start with the error:
Could not parse json file. Maybe you forgot a comma somewhere?
A: Well the answer is right there. The json could not be parsed. Make sure that you follow the outlined structure and have no syntax error.
Further Help
To get more information, see the Wiki or see
ginst --help
Dependencies
~4.5–9.5MB
~172K SLoC