Files
configurator/DESIGN.md
Myy Miouyouyou e2c72a828b I should stop using Kate for editing Markdown files
This retarded editor will delete spaces at the end of
Markdown lines EVEN WHEN ASKED TO NEVER DO IT !
Two spaces to create a line-break in Markdown is
PART OF THE SYNTAX !

So, I'm now switching to Code for Markdown.

Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
2022-08-07 16:44:24 +02:00

112 lines
3.2 KiB
Markdown

Version: 1
Status: DRAFT
# Status
While this tutorial will explain you how to start coding your own
module, it won't be prepared for packaging...
TODO : Add a 'build' script example that make the whole thing ready
for packaging.
# Main design
## Coding your own CLI module
1. Create a directory where you'll put the CLI module code and `cd` into it.
Example :
```bash
mkdir -p ~/Documents/my_armbian_module
cd ~/Documents/my_armbian_module
```
2. Create a file named `DESC` and write a short description for this module.
```bash
echo "Best module ever" > DESC
```
3. Add a `module` file and ensure it is executable.
This file will be the one executed by the configurator when running
your module.
```bash
echo '#!/bin/bash' > module
echo "echo 'I told you, best module ever \!'" >> module
chmod +x module
```
4. Create the directory `/usr/share/armbian/configurator/modules/${module_name}/cli`
Example, if your module is named 'my_module' :
```bash
module_name=my_module
sudo mkdir -p "/usr/share/armbian/configurator/modules/${module_name}"
```
5. Link the `DESC` file to `/usr/share/armbian/configurator/modules/${module_name}/DESC`
```bash
module_name=my_module
sudo ln -s "${PWD}/DESC" "/usr/share/armbian/configurator/modules/${module_name}/DESC"
```
6. Link the directory itself to `/usr/share/armbian/configurator/modules/${module_name}/cli`
```bash
module_name=my_module
sudo ln -s "${PWD}" "/usr/share/armbian/configurator/modules/${module_name}/cli"
```
Now, the module is recognized by the configurator.
Launch the configurator without arguments to see your module in the list.
Launch the configurator with the name of your module to launch it :
```bash
module_name=my_module
configurator ${module_name}
```
```
I told you, best module ever !
```
## Adding a GUI (X11/Wayland) to your module
1. Create a directory where you'll put the GUI executable of your module.
2. Make sure your GUI executable name is named `module`
3. Link it to `/usr/share/armbian/configurator/modules/${module_name}/gui`
You're done
## Adding a translation to the short description
To add a translation for a module description, add a `DESC.{locale}` file
to `/usr/share/armbian/configurator/modules/${module_name}/`
Precise locales are sampled before global ones, however
avoid using precise locales names when you can.
### Example
Let's say you want to add a French translation for a module description.
French locales start with `fr`.
French locale for people living in France specifically is : `fr_FR`.
French locale for people living in Canada specifically is : `fr_CA`.
So, if you want to add a french translation, add either a
`DESC.fr` or `DESC.fr_FR` file.
If you add both `DESC.fr_FR` and `DESC.fr`, the system will use :
* `DESC.fr_FR` for people using the `fr_FR` locale.
* `DESC.fr` for people using `fr_CA` locale.
If you only add `DESC.fr`, the system will use :
* `DESC.fr` for people using the `fr_FR` locale.
* `DESC.fr` for people using `fr_CA` locale.
if you only add `DESC.fr_FR`, the system will use :
* `DESC.fr_FR` for people using the `fr_FR` locale.
* `DESC` (default english version) for people using the `fr_CA` locale.
## Prepare for packaging
In order to prepare the module for packaging, see **PACKAGING.md**.