diff --git a/config_app_ynh/conf/index.html b/config_app_ynh/conf/index.html new file mode 100644 index 0000000..47d0444 --- /dev/null +++ b/config_app_ynh/conf/index.html @@ -0,0 +1,5 @@ + + + This is a dummy app to test the change url feature. + + diff --git a/config_app_ynh/conf/nginx.conf b/config_app_ynh/conf/nginx.conf new file mode 100644 index 0000000..7242d79 --- /dev/null +++ b/config_app_ynh/conf/nginx.conf @@ -0,0 +1,3 @@ +location PATHTOCHANGE { + alias /var/www/FOLDER; +} diff --git a/config_app_ynh/conf/test.ini b/config_app_ynh/conf/test.ini new file mode 100644 index 0000000..e69de29 diff --git a/config_app_ynh/conf/test.json b/config_app_ynh/conf/test.json new file mode 100644 index 0000000..e69de29 diff --git a/config_app_ynh/conf/test.php b/config_app_ynh/conf/test.php new file mode 100644 index 0000000..e69de29 diff --git a/config_app_ynh/conf/test.py b/config_app_ynh/conf/test.py new file mode 100644 index 0000000..e69de29 diff --git a/config_app_ynh/conf/test.yml b/config_app_ynh/conf/test.yml new file mode 100644 index 0000000..e69de29 diff --git a/config_app_ynh/config_panel.toml b/config_app_ynh/config_panel.toml new file mode 100644 index 0000000..e56e2ba --- /dev/null +++ b/config_app_ynh/config_panel.toml @@ -0,0 +1,212 @@ +version = "0.1" +name = "Configuration panel" + +[main] +name = "Main section" + + [main.components] + name = "Components" + + [main.components.boolean] + ask = "Put a boolean" + type = "boolean" + choices = ["on", "off"] + default = "off" + + [main.components.number] + ask = "Put a number" + type = "number" + min = 1 + max = 100 + + [main.components.range] + ask = "Put a range" + type = "range" + min = 1 + max = 100 + + [main.components.str] + ask = "Put a string with yunohost word" + type = "string" + pattern = "yunohost" + + [main.components.text] + ask = "Put a text" + type = "text" + + [main.components.password] + ask = "Put a password" + type = "password" + + [main.components.custom_path] + ask = "Put a path" + type = "path" + + [main.components.email] + ask = "Put a email" + type = "email" + + [main.components.url] + ask = "Put a url" + type = "url" + + [main.components.date] + ask = "Put a date" + type = "date" + + [main.components.time] + ask = "Put a time" + type = "time" + + [main.components.color] + ask = "Put a color" + type = "color" + + [main.components.select] + ask = "Choose an option" + type = "select" + choices = ["option1", "option2", "option3"] + + [main.components.custom_domain] + ask = "Put a domain" + type = "domain" + + [main.components.user] + ask = "Put a user" + type = "user" + + [main.components.tags] + ask = "Put some tags" + type = "tags" + + [main.components.file] + ask = "Put a file" + type = "file" + accept = ".cube" + + [main.messages] + name = "Read only components" + + [main.messages.success] + ask = "This is a success message" + type = "success" + + [main.messages.info] + ask = "This is an info message" + type = "info" + + [main.messages.warning] + ask = "This is an warning message" + type = "warning" + + [main.messages.error] + ask = "This is an error message" + type = "error" + + [main.messages.display_text] + ask = "This is a simple text" + type = "display_text" + + [main.messages.markdown] + ask = "This is a **markdown** text" + type = "markdown" + + [main.generic] + name = "Generic options" + + [main.generic.default] + ask = "This is a question with a default value" + type = "string" + default = "Camille" + + [main.generic.example] + ask = "This is a question with an example value" + type = "string" + example = "Camille" + + [main.generic.optional] + ask = "This is an optional value" + type = "string" + optional = true + + [main.generic.help] + ask = "Here we add some help" + type = "string" + help = "You can feel this question with your keyboard (yes i know it's very useful)" + + [main.generic.helpLink] + ask = "Here we add an help link" + type = "string" + help.href = "https://yunohost.org/doc" + help.text = "Yunohost Doc" + + [main.generic.visibleIf] + ask = "Display if helpLink question is filled" + type = "string" + visibleIf = "helpLink" + +[source] +name = "Source section" + + [source.settings] + name = "App settings" + + [source.settings.arg1] + ask = "Save app settings arg1" + type = "string" + + [source.yml] + name = "YAML" + + [source.yml.arg2] + ask = "Save arg2 in YAML" + type = "string" + source = "__FINALPATH__/test.yml" + + [source.json] + name = "JSON" + + [source.json.arg3] + ask = "Save arg3 in JSON" + type = "string" + source = "__FINALPATH__/test.json" + + [source.ini] + name = "INI" + + [conf.ini.arg4] + ask = "Save arg4 in INI" + type = "string" + source = "__FINALPATH__/test.ini" + + [source.php] + name = "PHP" + + [source.php.arg5] + ask = "Save arg5 in PHP file" + type = "string" + source = "__FINALPATH__/test.php" + + [source.python] + name = "Python" + + [source.python.arg6] + ask = "Save arg6 in python file" + type = "string" + source = "__FINALPATH__/test.py" + + [source.file] + name = "File" + + [source.file.arg7] + ask = "Save a cube file" + type = "file" + accept = ".cube" + source = "__FINALPATH__/test.cube" + + [source.function] + name = "function" + + [source.function.arg8] + ask = "Custom validate and save arg8 password" + type = "password" diff --git a/config_app_ynh/manifest.json b/config_app_ynh/manifest.json new file mode 100644 index 0000000..123f92f --- /dev/null +++ b/config_app_ynh/manifest.json @@ -0,0 +1,36 @@ +{ + "name": "Config panel", + "id": "config_app", + "description": { + "en": "Dummy app to test config panel" + }, + "license": "GPL-3+", + "maintainer": { + "name": "ljf", + "email": "ljf+config_app@reflexlibre.net", + "url": "http://reflexlibre.net" + }, + "requirements": { + "yunohost": ">> 4.2.7" + }, + "multi_instance": false, + "arguments": { + "install" : [ + { + "name": "domain", + "ask": { + "en": "Choose a domain" + }, + "example": "domain.org" + }, + { + "name": "path", + "ask": { + "en": "Choose a path" + }, + "example": "/", + "default": "/" + } + ] + } +} diff --git a/config_app_ynh/scripts/config b/config_app_ynh/scripts/config new file mode 100644 index 0000000..d81e75d --- /dev/null +++ b/config_app_ynh/scripts/config @@ -0,0 +1,68 @@ +#!/bin/bash + +#================================================= +# GENERIC STARTING +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +#================================================= +# RETRIEVE ARGUMENTS +#================================================= + +app=$YNH_APP_INSTANCE_NAME + +final_path=$(ynh_app_setting_get $app final_path) + +#================================================= +# SPECIFIC GETTERS FOR TOML SHORT KEY +#================================================= + +get__arg8() { + echo "" +} + +#================================================= +# SPECIFIC VALIDATORS FOR TOML SHORT KEYS +#================================================= +validate__arg8() { + [[ "$#arg8" -lt 8 ]] && + echo 'Too short password' +} + +#================================================= +# SPECIFIC SETTERS FOR TOML SHORT KEYS +#================================================= +set__arg8() { + if [ -z "$arg8" ] + then + python -c "import crypt; print(crypt.crypt(\"${arg8}\", \"\$6\$saltsalt\$\"))" > $final_path/password + fi +} + + + +#================================================= +# OVERWRITING APPLY STEP +#================================================= +ynh_panel_apply() { + _ynh_panel_apply + systemctl restart nginx +} + +#================================================= +# GENERIC FINALIZATION +#================================================= +# Please don't change that code. +# You can overwrite these functions if you need it +#================================================= + +ynh_panel_init +case $1 in + show) ynh_panel_show;; + apply) ynh_panel_validate && ynh_panel_apply;; +esac + diff --git a/config_app_ynh/scripts/install b/config_app_ynh/scripts/install new file mode 100644 index 0000000..cea8772 --- /dev/null +++ b/config_app_ynh/scripts/install @@ -0,0 +1,10 @@ +set -eux + +# Source app helpers +source /usr/share/yunohost/helpers + +app=$YNH_APP_INSTANCE_NAME + +mkdir -p /var/www/$app + +cp ../conf/* /var/www/$app/ diff --git a/config_app_ynh/scripts/remove b/config_app_ynh/scripts/remove new file mode 100644 index 0000000..e8ed61c --- /dev/null +++ b/config_app_ynh/scripts/remove @@ -0,0 +1,7 @@ +set -eux + +# See comments in install script +app=$YNH_APP_INSTANCE_NAME + +rm -rf /var/www/$app +