Merge branch 'master' of ssh://apo.geoffray-levasseur.org/share/services/git/legos

This commit is contained in:
levasseur
2021-06-24 11:19:51 +02:00

View File

@@ -1,12 +1,13 @@
# init.sh # init.sh
**init.sh** is an automated configurator for system administrator. It's fully **init.sh** is an automated configurator for system administrator. It's fully
written using Bash scripting and aims to be platform independent. Nevertheless written using Bash scripting and aims to be platform independent. Nevertheless,
it's requirements turns it naturally to Linux systems. It have long been tested it's requirements turns it naturally to Linux systems. It have long been tested
using Debian GNU/Linux, Devuan and different flavor of Ubuntu. using Debian GNU/Linux, Devuan and different flavor of Ubuntu.
## Getting started ## Getting started
You should consider reading the Beginners guide. If you need to create You should consider reading the [Beginner's guide](./doc/user.md). If you need
additional modules to meet your needs, consider reading the Developers guide. to create additional modules to meet your needs, consider reading the
[Developer's guide](./doc/dev.md).
Please also consider that your needs might meet the needs of someone else, thus Please also consider that your needs might meet the needs of someone else, thus
it would be a good idea to submit your module to init.sh source base. it would be a good idea to submit your module to init.sh source base.
@@ -24,6 +25,10 @@ of the framework and consisting on very small and simple task.
Additionally some module might be ran regularly so it could be integrated in a Additionally some module might be ran regularly so it could be integrated in a
cron-like service. cron-like service.
### Main configuration file
Writing in progress.
### Basic module structure ### Basic module structure
Please note that modules are not supposed to contain any specific code for a Please note that modules are not supposed to contain any specific code for a
@@ -56,7 +61,7 @@ implies any increment of a version number in the code **and** a git commit.
```shell ```shell
# Description @template@ module # Description @template@ module
# Modiule version # Module version
export VER_@template@="0.0.1" export VER_@template@="0.0.1"
# Module main code # Module main code
@@ -76,3 +81,21 @@ export -f @template@
export -f precheck_@template@ export -f precheck_@template@
``` ```
### Command line
The **init.sh** script allows some command line parameters and some environement
variables to change it's behaviour.
The parameters are:
- **-m \<list\>, --module=\<list\>**: Allows to manually give a module list and
overide the *MODULE_LIST* variable declaration. The list is a comma separated
module name. If that option is provided, the module list is mandatory.
- **-c, --check-only**: Do not launch any actions, only the checks are launched.
In that situation, no change should be done to the system.
- **-j, --jump**: Jump the checks and goes directly to system transformation.
That option should only be run after successfull checks (eg. after using the
**--checkonly** option).
- **-k, --keep-going**: The scripts will continue even if errors occurs. Thus
some unrecoverable errors might stop the script anyway if it not allowing it to
work.