Meilix Generator is a webapp generated in FOSSASIA which takes input from user and send it to Meilix to trigger a build. Then a release is made whose link is emailed to the user. The webapp contains a form where there are fields for installing a particular packages, etc. In the following we will discuss about the ways to achieve the configurations in Meilix ISO without even touching the Meilix repo.
For adding an option in the webapp:
Editing the frontend
We need to edit this line in the index.html with this line:
<input name = "GENERATOR_package_vlc" type = "checkbox" value = "vlc" id = "vlc">
Making the script
Then we have to add a script in the script folder. This script is called by Meilix build script. This script contains the variable “GENERATOR_package_vlc”.
We name this file vlc-package.sh
Content:
#!/bin/bash if echo "$GENERATOR_package_vlc" | grep -q vlc; then sudo apt-get install -q -y vlc; fi
Line 2 checks that the vlc is checked in the checkbox or not, if it is checked then the other next line gets executed otherwise not.
Calling the script from Meilix (needs to be done only once)
We will add a line in the Meililx build script to call those script present in the Meilix Generator repo.
SCRIPT_URL=https://www.github.com/fossasia/meilix-generator/archive/master.zip wget -O $scripts.zip $SCRIPT_URL unzip scripts.zip SCRIPTS_FOLDER_IN_ZIP="meilix-generator-master/scripts" ls $SCRIPTS_FOLDER_IN_ZIP; do $SCRIPTS_FOLDER_IN_ZIP/script; done #execute all scripts
Setting the URL via travis build config post to get all the values starting with GENERATOR_
GENERATOR_ = request.form['GENERATOR_']
So overall the abstract of the idea is:
- Getting the variables from html to travis as environment variable
- Cloning the meilix repo
- Executing all the scripts present.
References: