Thank you very much for your interest in this project! There are plenty of ways you can support us. :-)
We like you to read and follow our code of conduct before contributing. Thank you.
The best and (probably) easiest way is to use one or more of the scripts. It would be very nice to share your thoughts with us. We love to hear from you.
If you have questions how to use it properly read the documentation carefully.
If you find something strange please report it to our issue tracker.
Of course, there are some features in the pipeline. However, if you have good ideas how to improve this application please let us know! Write a feature request in our issue tracker.
Developer and build environments must meet at least these requirements:
- Git
- ShellCheck
- make
- npm
These dependencies are suggested:
- fpm
- lintian
For example, if you're running a Debian GNU/Linux run this command line as root
user:
apt install build-essentials git make shellcheck lintian nodejs
If you like to contribute source code, documentation snippets, self-explaining examples or other useful bits, fork this repository, setup the environment and make a pull request.
git clone https://github.com/bheisig/i-doit-scripts.git
cd i-doit-scripts
npm install
If you have a GitHub account create a fork first and then clone the repository.
Inside the repository you find the following file structure:
.
├── CHANGELOG.md # Changelog
├── CODE_OF_CONDUCT.md # Code of conduct
├── CONTRIBUTING.md # This file
├── cron # Pre-defined cron jobs
├── .editorconfig # Editor configuration settings
├── .gitattributes # Git configuration settings
├── .github/ # GitHub-related templates
│ ├── issue_template.md
│ └── pull_request_template.md
├── .gitignore # Files/directories to be ignored by git
├── idoit # Easy-use of the i-doit CLI
├── idoit-backup # Backup i-doit files and databases
├── idoit-hotfix # Deploy hot fixes
├── idoit-install # Install i-doit on a GNU/Linux operating system
├── idoit-jobs # Run important jobs automatically
├── idoit-pwd # Alter passwords for various users and remove default users
├── idoit-restore # Restore i-doit from backup
├── i-doit.sh # Configuration settings
├── idoit-support # Collect data about i-doit, installed add-ons and your system
├── LICENSE # License information
├── Makefile # Make rules (see above)
├── node_modules/ # Installed npm packages
├── package.json # Configuration settings for npm
├── README.md # Documentation
└── .travis.yml # Configuration settings for Travis-CI continuous integration server
Now your system is ready for your contributions. Do not forget to commit your changes. When you are done consider to make a pull requests.
Notice, that any of your contributions merged into this repository will be licensed under the AGPLv3.
There are no specific coding guidelines for shell scripts. But we encourage you to follow common guidelines specified by the ShellCheck community. See their wiki pages for details.
Run make lint-shell
to check your code. This makes sure your code follows the coding guidelines mentioned above. If any error/warning occurs please fix it before sending a pull request.
Don't forget to add new shell scripts to the Makefile
. This is necessary for some make rules like make lint-shell
.
If there are any questions just raise an issue.
This project comes with some useful make rules:
Command | Description |
---|---|
make deb |
Create a Debian GNU/Linux compatible distribution package |
make clean |
Clean up project directory |
make install |
Install shell scripts locally |
make lintian |
Validate distribution package |
make lint-markdown |
Validate markdown files |
make lint-shell |
Validate shell scripts |
make lint-yaml |
Validate YAML files |
make uninstall |
Uninstall shell scripts from local system |