Commit graph

611 commits

Author SHA1 Message Date
Maniack Crudelis
de3a0b4f69 [fix] ynh_install_app_dependencies uses grep instead of python (#313)
Proposition to discuss
2017-06-09 00:46:36 +02:00
ljf (zamentur)
d3eeb4bbc7 [enh] Refactor backup management to pave the way to borg (#275)
* [enh] Use a csv to list file to backup
* [enh] Use csv python module
* [wip] Backup refactoring
* [wip] Backup class refactoring
* [enh] Add archivemount dependencies
* [wip] Restore refactoring
* [fix] Some error in this refactoring
* [fix] Missing backup key translation
* [fix] Bad YNH_CWD in hook backup
* [fix] App backup part was broken
* [fix] Restore operation was broken
* [fix] No compressed backup
* [fix] Don't commit backup path into csv if app backup fail
* [fix] Default backup collect_dir should be in tmp subdir
* [enh] Simplify a copy code
* [enh] Build backup info from properties
* [enh] Improve comments presentation
* Adding first tests for backup/restore
* Adding more backup/restore app test scenario
* [enh] Separate BackupMethods in distinct class
* Adding test of restoring a wordpress archive from 2.4
* [fix] Be able to delete backup link too
* [fix] Bad internationalization key
* [fix] Edge case with empty mysql pwd restore
* [fix] Unset var in restore
* [fix] Edge case with empty mysql pwd restore
* Adding test for backup crash handling
* Cleaning tests + checking tmp dir is empty
* [fix] Missing tmp in backup path
* [fix] Error on reading backup csv
* Adding test of failed restore
* Adding tests when not enough space available
* Simplifying tests using markers
* [fix] ynh backup/restore helpers with only one arg
* [fix] Unmount subdir with python
* [enh] Improve backup size management
* [fix] None object in backup
* [enh] Remove dead code
* [fix] Missing locales
* [enh] Adapat test about needed space
* [fix] Pass some test
* [enh] Remove dead code
* [enh] Pass all test
* [enh] Adding test that backups contains what's expected
* Fix typo in tests
* [fix] Bad documentation
* [enh] Add comment
* [enh] Use len in place of implicit {} == False
* [enh] Add comment
* [enh] Add comment
* [enh] Refactoring on _collect_app_files
* Adding skeleton for remaining tests to write
* [enh] Use a csv to list file to backup
* [enh] Use csv python module
* [wip] Backup refactoring
* [wip] Backup class refactoring
* [enh] Add archivemount dependencies
* [wip] Restore refactoring
* [fix] Some error in this refactoring
* [fix] Missing backup key translation
* [fix] Bad YNH_CWD in hook backup
* [fix] App backup part was broken
* [fix] Restore operation was broken
* [fix] No compressed backup
* [fix] Don't commit backup path into csv if app backup fail
* [fix] Default backup collect_dir should be in tmp subdir
* [enh] Simplify a copy code
* [enh] Build backup info from properties
* [enh] Improve comments presentation
* Adding first tests for backup/restore
* Adding more backup/restore app test scenario
* [enh] Separate BackupMethods in distinct class
* Adding test of restoring a wordpress archive from 2.4
* [fix] Be able to delete backup link too
* [fix] Bad internationalization key
* [fix] Edge case with empty mysql pwd restore
* [fix] Unset var in restore
* [fix] Edge case with empty mysql pwd restore
* Adding test for backup crash handling
* Cleaning tests + checking tmp dir is empty
* [fix] Missing tmp in backup path
* [fix] Error on reading backup csv
* Adding test of failed restore
* Adding tests when not enough space available
* Simplifying tests using markers
* [fix] ynh backup/restore helpers with only one arg
* [fix] Unmount subdir with python
* [enh] Improve backup size management
* [fix] None object in backup
* [enh] Remove dead code
* [fix] Missing locales
* [enh] Adapat test about needed space
* [fix] Pass some test
* [enh] Remove dead code
* [enh] Pass all test
* [enh] Adding test that backups contains what's expected
* Fix typo in tests
* [fix] Bad documentation
* Adding skeleton for remaining tests to write
* [enh] Add comment
* [enh] Use len in place of implicit {} == False
* [enh] Add comment
* [enh] Add comment
* [enh] Refactoring on _collect_app_files
* [fix] Replay e1a507 deleted by rebase
* [fix] ynh_restore helper
* Renaming 'hooks' terminology to 'system' where it makes sense
* Propagating new --system/--ignore-system to actionmap
* Adding more tests + clarifying some functions and messages
* Factorize out the definition and validation of backup/restore targets
* Add missing key
* Use list comprehension instead of dirty loops
* [enh] Add docstring in BackupManager
* [enh] Add docstring on BackupMethod(s)
* [fix] Remove deadcode
* [fix] Remove debug message
* [enh] Add comments on RestoreManager
* [enh] Add comments on backup constants
* Adding a proper report/result for each backup target
* Skipping tests not implemented yet
* Fixing little mistake from merging
* [fix] Support different fs or archivemount error
* [enh] Backup helpers readability
* [fix] Copy backup method
* [fix] Deprecated warning always displayed
* [enh] Retrieve info.json file inside tar.gz
* Trying to reorganize methods with sections for readability
* [enh] Support archivemount failure
* [fix] Missing env var for system part restore helpers
* Clarifying disk usage / free space computation
* [enh] Refactoring around backup set_targets()
* Clarifying structure of backup_create and backup_restore
* Move RestoreManager between BackupManager and BackupMethods
* [fix] Missing locales
* [fix] System part restore if archivemount failure
* [enh] Extract all conf instead of specific code
* [fix] Other output directory (compressed archive)
* [enh] Add test for uncompressed backup
* [fix] Compressed backup in an existing output directory
* [fix] Return size for retro-compatibility
* [fix] Mountpoint check aborting script when called with -eu
* [fix] Avoid failure test with set -eu
* [fix] locale strings missing/bad arguments
* Check free space before mount
* [fix] ynh_restore_helpers with existing archive path
* Adding skeletons for moar tests
* Fixing some weird bug in _get_archive_path
* Adding a regen-conf at the end of system restore
* Adding tests of system restore from 2.4
* Have a class dedicated to target management
* Cleaning tests
* Misc formatting
* More meaningful variable names inside app restore
* [fix] can't call source ../settings/scripts/_common.sh in app backup
* [fix] ynh_install_app_dependencies is not compatible with readonly mount
* [fix] Remove temporary file
2017-06-02 13:41:16 +02:00
Maniack Crudelis
c0a40dd2df New helpers ynh_store_file_checksum and ynh_backup_if_checksum_is_different (#286)
* New helpers ynh_store_checksum_config and ynh_compare_checksum_config

Helpers for avoid destruction of personalised config files.
If the config file was manually modified, make a backup of it.

The name of this backup is returned, so the packager can choose which of this both file will used by default.

* Implement @JimboJoe's comments.
* Setting local variables as local
* Adding warning about $app that should be defined
* Remove "globally" in comment to limit confusion
* Remove "globally" in comment to limit confusion
* Remove compress and use /home/yunohost.conf/backup
* Changing timestamp format to match regen-conf's
* Tested and fixed ;)
2017-05-22 15:24:16 +02:00
JimboJoe
fee4272eac Fix ynh_local_curl (#306)
POST arguments aren't given to the request if quotes are used.
2017-05-11 23:01:49 +02:00
Maniack Crudelis
dfee06404e Nouveaux helpers ynh_mysql_generate_db et ynh_mysql_remove_db (#236)
* Nouveaux helpers ynh_mysql_generate_db et ynh_mysql_remove_db
Helpers pour créer une base de donnée, son utilisateur et un mot de passe.
Et son pendant pour la supprimer.
* Separate corrections of names
* Grammar nazism
* Update according to comments
* Renaming ynh_make_valid_dbid to ynh_sanitize_dbid
* Fixing remaining make_valid_dbid
* Implement remaining comments
* Add a check that the user exist before deleting it
2017-05-08 19:05:49 +02:00
JimboJoe
c8647fc21f [fix] ynh_setup_source: use YNH_CWD instead of YNH_EXECUTION_DIR (#305)
Following this discussion: https://github.com/YunoHost/yunohost/pull/282#issuecomment-299637999
2017-05-07 19:05:42 +02:00
Maniack Crudelis
3571747718 Nouveau helper ynh_webpath_available et ynh_webpath_register (#235)
* Nouveau helper ynh_path_validity
Simplement un wrapper de yunohost app checkurl.
Peut-être une occasion de lui donner un autre nom plus parlant.
Il me semble justement qu'il en était question.
Conflicts:
	data/helpers.d/network
* Renaming ynh_path_validity to ynh_webpath_available
* Splitting domain and path
* Use the new url-available command instead of deprecated checkurl
* Adding ynh_webpath_register
* [enh] Check before register
- Need to be tested.
- And... probably lack a echo to inform in case of error.
* Fixing helper following discussion with Maniack
2017-05-06 16:53:54 +02:00
Maniack Crudelis
0e44a42274 New helper ynh_setup_source (#282)
* New helper ynh_setup_source
THE trollest helper :D
An helper to handle download, checksum, copy, patches, extra files and even a way to install without internet connection.
Really usefull to simplify this part of the packaging.
* [fix] Source id and pkg _dir missing, strip-components deactivation
* [fix] Replace tab by 4 spaces
* [fix] False default value in ynh_setup_source helpers
* [fix] Empty var failed on set -u into ynh_setup_source
* [fix] Multiple patch on setup sources helper
* [fix] Doc, patch and extra_file in ynh_setup helpers
* [enh] Allow to use ynh_setup_source in another dir
* [fix] Doc ynh_get_plain_key
* [fix] Missing default value in ynh_setup_source
* Missing closing } after merge with unstable ?
2017-05-03 19:19:41 +02:00
Maniack Crudelis
caa63f7022 Merge pull request #302 from YunoHost/curl_helper
[enh] Fix curl helper without POST data
2017-05-03 19:08:36 +02:00
Maniack Crudelis
47ce6d9e33 New helper ynh_secure_remove (#281)
* New helper ynh_secure_remove
A secure way to remove a file or directory.
Prevent to knew issues.
Tested with this paths:
- / -> Not removed
- /var -> Not removed
- /var/www -> Not removed
- /var/www/file -> Removed
- /opt -> Not removed
- /opt/file -> Removed
- /home/yunohost.app -> Not removed
- /home -> Not removed
- /home/ -> Not removed
- // -> Not removed
- /etc/cron.d/ -> Not removed
- /etc -> Not removed
- /etc/ -> Not removed
- /etc/X11 -> Removed
- /etc/X11/$var -> Removed (if $var is not empty)

* JimboJoe's typo fix
2017-04-30 22:37:52 +02:00
Maniack Crudelis
558323f6f2 [enh] Fix curl helper without POST data
- Allow to use this helper without any POST data
- Keep curl more quiet
2017-04-26 19:51:51 +02:00
ljf (zamentur)
c954429cca [fix] Avoid to remove a apt package accidentally (#292)
* [fix] Avoid to remove a apt package accidentally
* [fix] No need --no-remove option with apt update cmd
2017-04-06 15:34:17 +02:00
Maniack Crudelis
712e69d830 New helper ynh_local_curl (#288)
* New helper ynh_curl_abstract
Just an abstraction around curl command.
To prevent forgot arguments and simplify this difficult command.
* [enh] Switch args of ynh_curl_abstract
* [enh] Rename ynh_curl_abstract into ynh_local_curl
* Splitting the various key=value into several arguments
* Comment to clarify bash command
* Adding comment about $domain and $path_url
2017-04-06 15:33:56 +02:00
Maniack Crudelis
c31e4c5b0d New helper ynh_replace_string (#280)
* New helper ynh_substitute_char
Sed abstraction, and a way to use something other than sed.
I added also an escape of the delimiter used by sed, to prevent a fail in this case.
* Renaming to ynh_replace_string
* Renaming variable for clarity
2017-04-02 23:52:11 +02:00
Laurent Peuch
6a0db24c5d Merge pull request #247 from YunoHost/equivs_helpers
[enh] New helpers for equivs use
2017-03-20 01:34:12 +01:00
Laurent Peuch
48238171b2 Merge pull request #248 from YunoHost/logrotate_helpers
[enh] New helpers for logrotate
2017-03-17 16:16:56 +01:00
Maniack Crudelis
9d44e1d84b [enh] New helper ynh_abort_if_errors (#245)
* New helper ynh_check_error

Helpers to implemente trap and set -eu.

Simply to use, you only add `ynh_check_error` in your script.

* Change helper's name

* Propagate new name in comments
2017-03-17 16:16:36 +01:00
Alexandre Aubin
5b9092d6df Rename ynh_app_dependencies to ynh_install_app_dependencies 2017-03-17 04:07:17 +01:00
Maniack Crudelis
5f3fcefc88 Prevent to rewrite the previous control file 2017-03-16 18:35:57 +01:00
Maniack Crudelis
6fbc6fa17d Nouveau helper ynh_normalize_url_path (#234)
* Nouveau helper ynh_check_path

Nouveau helper pour vérifier et corriger la syntaxe du path.
Et ça permet de passer le test "incorrect_path" de package check

* [fix] Bad comment

* path en argument et normalize

* Make commande more obvious

* Do not use path

* Adding behavior for / in the documentation
2017-03-16 04:58:34 +01:00
Maniack Crudelis
2bb32c26b6 Add app setting 2017-03-14 18:05:28 +01:00
Maniack Crudelis
5fcb8cd439 Remove use of deprecated helper 2017-03-14 16:34:07 +01:00
opi
0c01dd4dca Merge branch 'stable' into unstable. (#230 was merged into stable) 2017-03-14 16:29:09 +01:00
Maniack Crudelis
f2e656176e Failed if $1 not set
Because we use set -u, this helper failed if the optional arg is not set
2017-03-13 23:29:47 +01:00
Maniack Crudelis
4dfde86e1a Fix ynh_remove_app_dependencies too... 2017-03-02 23:57:02 +01:00
Maniack Crudelis
7ade94e7e3 Fix ynh_app_dependencies
Double // pour remplacer toutes les occurrences de _
Ajout d'une virgule entre les dépendances.
2017-03-02 23:55:28 +01:00
Laurent Peuch
cf3f0e8185 Merge pull request #230 from YunoHost/ynh_no_log
Hack dégueux pour éviter d'écrire dans le log cli
2017-02-26 19:35:27 +01:00
Laurent Peuch
5d3e1c9212 Merge pull request #233 from YunoHost/ynh_find_port
Nouveau helper ynh_find_port
2017-02-12 03:49:45 +01:00
Laurent Peuch
83dca8e7c6 Merge pull request #237 from YunoHost/ynh_system_user_create_delete
Nouveaux helpers ynh_system_user_create et ynh_system_user_delete
2017-02-12 03:49:02 +01:00
ljf
cc77cd788d [fix] Permission issue on install of some apps 778 2017-02-09 22:26:31 +01:00
Maniack Crudelis
b062c014b0 Restore use of subshell 2017-02-09 18:35:18 +01:00
Maniack Crudelis
0989e27d58 Update package 2017-02-09 17:22:24 +01:00
Maniack Crudelis
12b223b2f5 [enh] New helpers for logrotate
Add and remove logrotate config
2017-02-09 00:02:47 +01:00
Maniack Crudelis
d98b5e036c [enh] New helpers for equivs use
- `ynh_package_remove` and `ynh_package_autoremove` were just moved up.
- Small modifications on `ynh_package_install_from_equivs`. Just added some comments and used popd instead of cd.
- Added `ynh_app_dependencies` to manage easily installation of dependencies with equivs
- And `ynh_remove_app_dependencies` to remove them.
2017-02-08 19:23:27 +01:00
opi
8e811fd0ac [enh] Add warning about deprecated ynh_mkdir_tmp helper 2017-02-01 21:30:59 +01:00
Maniack Crudelis
65d412055d Update filesystem 2017-02-01 21:30:50 +01:00
Maniack Crudelis
28ec1dec8f Remove helper ynh_mkdir_tmp
Le helper `ynh_mkdir_tmp` est inutile. Il existe la commande `mktemp -d` pour créer des dossiers temporaires.
2017-02-01 21:30:45 +01:00
JimboJoe
4486b24388 ynh_backup: Fix error message when source path doesn't exist 2017-01-31 15:28:04 +01:00
Maniack Crudelis
901e3df9b6 Pas de correction de l'argument 2017-01-23 15:18:52 +01:00
Maniack Crudelis
cd93427a97 Retire la commande ynh 2017-01-23 15:17:13 +01:00
Maniack Crudelis
abb9f44b87 Nouveaux helpers ynh_system_user_create et ynh_system_user_delete
Helpers pour créer un utilisateur système et pour le supprimer.

La création d'user système permettra de créer des users dédiés aux applications. Cf YEP 3.4
2017-01-23 00:48:56 +01:00
Maniack Crudelis
3e9d086f7f Nouveau helper ynh_find_port
Nouveau helper pour trouver un port libre.

Déclinaison du code classique avec une vérification préalable de l'argument.
2017-01-22 20:01:27 +01:00
Maniack Crudelis
e714effdc7 Hack dégueux pour éviter d'écrire dans le log cli
Un hack vraiment sale pour contourner le log de YunoHost pour les commandes en conditionnel.
Autrement, la commande log une erreur dans son log et est considérée comme une commande échouée par l'intégration continue.

Le fruit d'une longue discussion stérile:
>(14:01:23) Maniack C: @Bram, tu sais comment sont gérés les sorties d'erreurs des commandes YunoHost, par rapport au log?
(14:01:44) Bram: Maniack C: il va falloir que tu détails ta question
(14:02:27) Maniack C: Les commandes ynh en cli log dans le fichier de log, mais si on redirige la sortie des commandes dans /dev/null, elles log toujours de la même manière
(14:03:11) Maniack C: On dirait qu'on a aucun contrôle sur le log des commandes
(14:04:13) Maniack C: Est-ce que l'argument --quiet change se comportement?
(14:05:00) Bram: je ne sais pas
(14:05:22) Bram: si les commandes loguent dans un fichier, rediriger l'output ne changera rien
(14:05:41) Maniack C: Oui remarque c'est évident...
(14:05:43) Bram: rediriger l'output ça change uniquement les fd stdout/stderr
(14:08:18) Maniack C: Hum, et quiet coupe juste la sortie standard
(14:08:27) Maniack C: C'est un peu inutile du coup
(14:20:47) Maniack C: Je ne trouve --quiet que dans une branche du code... Et là il vire seulement tty
(14:20:57) Bram: Maniack C: tu veux faire quoi en fait ?
(14:21:17) Maniack C: Trouver ce que fait --quiet et pourquoi
(14:21:33) Maniack C: Dans le fond surtout, supprimer toute sortie d'une commande
(14:21:44) Maniack C: Pour les usages en if ou while
(14:21:46) Bram: pourquoi tu veux faire ça ?
(14:21:57) Maniack C: Ça provoque des erreurs
(14:22:13) Bram: mais encore ?
(14:22:36) Maniack C: typiquement ça:
while ! sudo yunohost app checkport $port ; do
    port=$(($port + 1))
done
(14:22:45) Maniack C: La commande sort une erreur
(14:23:04) Maniack C: Alors qu'on voudrait juste tester le résultat de la commande
(14:23:46) Maniack C: Et le quiet ou le /dev/null te fait juste croire qu'il n'y a pas d'erreur
(14:23:55) Bram: et ça devrait faire quoi exactement ?
(14:24:01) Bram: (on va finir par y arriver :p)
(14:24:04) Bram: #xyproblem
(14:24:56) Maniack C: Ba quand tu testes une commande en if, tu élude la sortie d'erreur et tu test juste la sortie de commande
(14:25:06) Maniack C: Et aucune erreur n'est affichée
(14:25:15) Maniack C: Là on a quand même une erreur dans le log
(14:25:32) Bram: tu testerais pas le code de retour ?
(14:25:33) Maniack C: Résultat en intégration continue, l'app est cassée
(14:25:40) Bram: sinon en vrai tu veux une commande pour avoir un port libre, c'est ça ?
(14:25:45) Maniack C: C'est le cas dans ce while
(14:26:23) Maniack C: Oui, mais scith a eu le même problème avec ynh_app_setting_get
(14:26:56) Bram: ça ressemble surtout à des commandes mal foutu
(14:27:06) Bram: et vous devriez plutôt en parler que chercher des hacks en bash :/
(14:27:08) Maniack C: Le problème est qu'on ne peut pas rendre la commande vraiment silencieuse
(14:27:49) Maniack C: Pour tester la sortie de commande, il n'y a pas beaucoup de solution
(14:27:55) Maniack C: Il faut l'éxecuter
(14:28:36) Maniack C: Mais quand on fait ça, on rend la commande silencieuse pour utiliser uniquement son code de sortie
(14:28:58) Bram: tu peux utiliser $?
(14:29:03) Bram: pour choper uniquement le code de sortie
(14:29:09) Bram: au lieu de l'output
(14:29:32) Maniack C: Le problème c'est que la commande log une erreur quoi qu'il en soit
(14:29:56) Maniack C: Indépendemment de sa sortie, le while travaille sur le code de sortie, ça pose pas de problème ça
(14:30:13) Maniack C: Mais elle log toujours une erreur
(14:31:55) Bram: hm
(14:31:57) Bram: si je comprend bien
(14:32:04) Bram: la commande produit pas le bon code d'erreur quand elle devrait
(14:32:05) Bram: c'est ça ?
(14:32:10) Maniack C: non
(14:32:10) Bram: si oui
(14:32:20) Bram: alors je capte pas pourquoi le fait qu'elle log est un problème
(14:32:47) Maniack C: Parce que derrière c'est le log qui est analysé pour vérifier si tout c'est bien passé
(14:32:59) Bram: et pourquoi vous analysez pas le code de sortie ?
(14:33:37) Maniack C: > (14:25:33) Maniack C: Résultat en intégration continue, l'app est cassée
(14:33:44) Bram: arf
(14:33:46) Maniack C: Le problème se répercute ici
(14:33:58) Maniack C: C'est le log complet qui est analysé
(14:33:58) Bram: ouais donc faudrait bien plutôt des commandes qui marchent comme prévu quoi
(14:34:10) Maniack C: Car c'est le seul à être vraiment comlet
(14:35:11) Maniack C: Ben faudrait pouvoir faire un quiet complet
(14:35:23) Maniack C: Pour n'avoir aucune sortie quand c'est nécessaire
(14:35:45) Bram: mouais, ça ressemble vraiment à un gros hack vu d'ici
(14:36:20) Maniack C: Le problème c'est que la commande, tu peux bien l'appeler comme tu veux, elle sort toujours une erreur dans son log avant de donner la main au shell parent
(14:36:37) Maniack C: Donc on peut pas la faire taire
(14:36:46) Maniack C: Pas depuis le shell du moins
(14:37:07) Bram: ça me semble un comportement pas déconnant franchement
(14:37:34) Maniack C: Disons que le problème c'est qu'il nous faudrait un -qq au lieu d'un simple -q
(14:37:42) Maniack C: Le quiet ne fait que couper stdout
(14:37:57) Maniack C: Ce qu'on pourrait tout aussi bien faire côté shell
(14:38:48) Maniack C: --quietlog par exemple nous serait utile pour rendre la commande vraiment silencieuse quand on veut l'utiliser en if
(14:42:47) Maniack C: Et je trouve pas l'argument dans le code...
(14:42:56) Bram: je pense pas que ça soit prévu
(14:43:05) Bram: ce qui me semble logique d'un point de vue dev hein
(14:43:14) Maniack C: Non c'est pas prévu
(14:43:15) Bram: y a jamais un moment où un dev va vouloir faire ça pour son soft
(14:43:28) Maniack C: Ben si, tu as ça avec d'autres commandes
(14:43:36) Maniack C: Aucune sortie
(14:43:42) Bram: oui mais là on parle de logs
(14:43:46) Bram: c'est pas pareil qu'une sortie
(14:44:01) Maniack C: Du coup ça bloque le CI cette histoire
(14:44:04) Bram: surtout quand t'as un service qui tourne, refuser de loguer ça me semble pas logique
(14:44:52) Bram: si tu veux vraiment empêcher de loger tu peux bouger le fichier de log avant de lancer la commande
(14:45:07) Maniack C: Là c'est un cas isolé où on veut aucune sortie pour tester une commande
(14:45:14) Bram: mais je continue de penser que cette approche de "pas logger" est une mauvaise approche à un vrai problème
(14:45:49) Maniack C: Le problème c'est que là ça empêche d'utiliser des commandes yunohost en test dans les scripts
(14:45:53) Bram: ben si c'est un cas isolé faut vraiment pas modifier un comportement globale pour ça mais analyser le cas et y apporter une solution spécifique
(14:46:12) Maniack C: C'est pour ça que je pense à un argument comme --quiet
(14:46:25) Maniack C: Puisque qu'en shell on peut rien faire
(14:54:43) Maniack C: Sans modifier --quiet, on pourrait simplement ajouter un argument avec handlers.remove('file')
(14:56:28) Bram: je continue de penser que tu dois lister les cas où ça pose problèmes et qu'on doit les analyser pour voir comment les résoudre plutôt que de faire un gros hack hein
(14:56:34) Bram: mais bon, t'as pas l'air de vouloir entendre ça :p
(14:56:50) Maniack C: Ben les cas c'est tout les if et les while
(14:57:11) Maniack C: Car ils vont potentiellement sortir en erreur
(14:57:18) Bram: ben liste tous les if et while où t'as besoin de faire ça
(14:57:33) Bram: là par exemple y a le fait qu'il faut une commande pour trouver un port libre qui génère pas d'erreur
(14:57:39) Bram: je veux voir quels sont les autres cas
(14:57:50) Maniack C: Plus on encourage l'usage des helpers, plus on créer ces situations !
(14:58:04) Maniack C: Jusqu'à présent on codait tous nos propres solutions
(14:58:17) Maniack C: Mais attend, j'en ai sous le coude moi
(15:00:31) Maniack C: https://github.com/maniackcrudelis/modele_ynh/blob/master/scripts/.fonctions#L97
https://github.com/maniackcrudelis/modele_ynh/blob/master/scripts/.fonctions#L125
https://github.com/maniackcrudelis/modele_ynh/blob/master/scripts/.fonctions#L133
https://github.com/maniackcrudelis/modele_ynh/blob/master/scripts/.fonctions#L209
(15:00:40) Maniack C: Et j'utilise peu de helpers
(15:01:11) Maniack C: Plus on encourage leur usage, plus on va créer des situations où ils seront conditionnés
(15:02:29) Maniack C: On peut toujours les contourner bien sûr
C'est le cas ici:
https://github.com/YunoHost-Apps/nextcloud_ynh/pull/12/files#diff-44cb16c778719320333118c04d509a7cR17
(15:03:00) Maniack C: Mais on régresse par rapport à l'encouragement à l'usage des helpers
(15:05:43) Maniack C: Josue-T pour son app monitorix je peux lui dire de ne pas utiliser sudo yunohost app checkport pour qu'elle fonctionne correctement.
Mais ça me semble aller à l 'encontre de l'idée des helpers
(15:07:44) Bram: ben c'est pas un problème de son app hein
(15:07:53) Bram: c'est un problème au niveau CI/yunohost donc lui a rien a changer
(15:08:27) Maniack C: Pour nextcloud j'ai changé mon code, car c'était simple à faire pour éviter ça
(15:09:13) Bram: le problème c'est que ces commandes ont pas été pensés pour être utilisé dans ton cas
(15:09:22) Maniack C: Je comprend bien
(15:09:30) Bram: c'est des commandes qui sont pensés pour utilisateur alors que tu t'en sers comme des briques de programmation
(15:09:36) Bram: ce qui est logique remarque vu les commandes
(15:09:38) Maniack C: Mais de fait on les utilises de plus en plus comme ça
(15:09:56) Bram: ça revient aussi à la volonté de jérôme de virer ça du code de yunohost
(15:10:09) Maniack C: Alors en l'occurrence Josue-T à pris mon code, mais je suis pas le seul
(15:10:59) Bram: j'ai le même problème dans mon code pour les settings globals
(15:11:14) Bram: je sais pas comment retourner un code système 1/0 pour que ça soit utilisé programmatiquement
(15:11:41) Maniack C: Là on l'a ce code de sortie sur ces commandes
(15:11:55) Bram: ouais mais ce code est généré par le logger
(15:12:01) Bram: qui fait les messages qui t'emmerdent
(15:12:07) Maniack C: ah ok
(15:12:09) Bram: https://github.com/YunoHost/yunohost/blob/unstable/src/yunohost/app.py#L882
(15:12:43) Bram: le problème c'est le mélange entre ces commandes utilisateurs
(15:12:49) Bram: et des commandes pour de la programmation
(15:12:55) Bram: jérôme a tenté de foutre ça dans des helpers
(15:13:07) Bram: mais c'est un peu mettre un pansement sur le problème
(15:13:16) Bram: faudrait idéalement un yunocode $stuff
(15:13:25) Bram: qui soit autre chose que la commande yunohost
(15:13:58) Bram: (d'ailleurs la commande check_port est méga bancale)
(15:14:40) Maniack C: Donc en somme il ne faudrait pas utiliser la moulinette CLI pour les helpers?
(15:14:55) Bram: idéalement oui
(15:15:09) Maniack C: Difficile à justifier pour qui n'a pas le nez dedans
(15:15:18) Bram: oui enfin
(15:15:20) Bram: là je te dis "idéalement"
(15:15:26) Bram: c'est un problème de design
(15:15:30) Bram: on a pas de solution sous la main
(15:15:45) Bram: donc aujourd'hui utiliser la moulinette dans les helpers est tout à fait raisonable
(15:15:52) Bram: mais ça pose les problèmes que tu as
(15:15:56) Maniack C: C'est que les commandes cli, yunohost ou autre, sont habituellement utiliser en shell
(15:16:36) Maniack C: A mon avis, si tu dis à un nouvel utilisateur qu'il ne doit pas scripter des commandes Yunohost, il ne comprendra pas
(15:16:54) Bram: ça sera un dev hein
(15:16:57) Bram: pas un utilisateur
(15:17:02) Maniack C: Certes oui
(15:17:03) Bram: et il aura théoriquement un manuel avec les helpers
(15:17:17) Bram: on devrait pas avoir de "check_port" dans les commandes yunohost par exemple
(15:17:48) Maniack C: Mais je crois que beaucoup de helpers utilisent la moulinette en fin de compte
(15:18:00) Bram: ben oui, c'est normal
(15:18:01) Bram: y a que ça
(15:18:50) Maniack C: Bon en somme, ma meilleur chance reste encore de réécrire un helper pour remplacer cette commande
(15:18:53) Maniack C: Ou pire...
(15:19:04) Maniack C: Un helper "hack dégueux" pour niquer le log...
(15:19:21) Bram: à très court terme oui
(15:19:27) Bram: à moyen terme il faudrait qu'on bosse sur ça
(15:19:39) Bram: pour qu'il y a des opérations bas niveau disponible qui fassent ce dont tu as besoin
(15:19:56) Maniack C: C'est si difficile en python de sortir le code d'erreur indépendemment?
(15:19:59) Maniack C: (vrai question)
(15:20:05) Bram: non, c'est trivial
(15:20:13) Bram: sys.exit(code)
(15:20:20) Maniack C: En effet
(15:20:25) Bram: là c'est le design de la moulinette et de yunohost (pour la millième fois :p)
(15:21:07) Maniack C: Tu pourrais me le dire 10000 fois, n'ayant pas le nez dedans j'en comprend pas la profondeur
(15:21:16) Bram: oui je vois bien ça :p
(15:21:16) Maniack C: J'imagine
2017-01-15 16:05:50 +01:00
ljf (zamentur)
0d6cf499a0 [fix] Bracket in passwd from ynh_string_random
With bracket we get string like "3KFEc[xm4[udnZ6pDJ8LvP0n"
Without "El0nMO3thacDwrjeRzgKnb30"
2016-12-09 07:34:31 +01:00
opi
2bfbada570 [enh] Add warning about deprecated ynh_mkdir_tmp helper 2016-11-29 15:27:51 +01:00
Maniack Crudelis
261a304f37 Update filesystem 2016-11-29 14:19:19 +01:00
Maniack Crudelis
ee5a42eaed Remove helper ynh_mkdir_tmp
Le helper `ynh_mkdir_tmp` est inutile. Il existe la commande `mktemp -d` pour créer des dossiers temporaires.
2016-11-29 14:00:15 +01:00
opi
21376eb956 [fix] Documentation typo 2016-07-30 12:19:21 +02:00
Jérôme Lebleu
542a7a3b82 [fix] Use the classic way to create read-only bind mount in ynh_backup 2016-05-30 12:05:12 +02:00
Jérôme Lebleu
81c8ce1a54 [fix] Set default value for YNH_APP_BACKUP_DIR in ynh_backup helper 2016-05-29 23:34:08 +02:00