You are here > Forums > Vos créations > À propos des scripts
| New topic - Reply |
| Author | Replies |
| Quentin PÂRIS | Saturday 26 February 2011 at 20:14 - [Quote] |
| Rank: Admin
|
Bonjour,
Vous êtes de plus en plus nombreux à écrire des scripts, et nous vous remercions pour cette aide ! Lors de la validation, on voit de plus en plus de petites choses qui nous embêtent un peu. Ainsi, pour que nous puissions valider vos scripts plus rapidement, je prends le temps d'écrire ce message pour expliquer les choses à éviter. Certaines règles étant indispensables pour le bon fonctionnement du script, elles sont obligatoires. Les autre sont recommandées. Si je ne précise rien, c'est que votre script ne sera pas refusé à la validation s'il ne respecte pas cette règle. Certains scripts déjà validés n'obéissent pas à ces règles. Ils sont corrigés au fur et à mesure, mais nous ne pouvons pas non plus tout faire d'un coup. 1 - Pas d'utilisation de sudo ! (Obligatoire)À ne pas fairePour des raisons de sécurité évidentes, il ne faut pas utiliser la commande sudo, gksudo, kdesu, ... Solution de remplacement Si néanmoins vous avez absolument besoin de la commande sudo dans votre script, il faut demander à l'utilisateur de taper cette commande. Pour cela, vous pouvez utiliser la commande suivante : POL_Call POL_Function_RootCommand "Commande root ; exit" 2 - Utiliser la variable $TITLE (recommandé)À éviterMettre un titre différent dans chaque fenêtre. Ça risque de perdre l'utilisateur POL_SetupWindow_message "Votre message" "Un titre bidon" Solution de remplacement La variable $TITLE est automatiquement définie, et contient le nom de votre script POL_SetupWindow_message "Votre message" "$TITLE" 3 - Raccourcir les en-têtes (recommandé)À éviterPresque plus personne n'utilise cette solution, mais je le rappelle quand même if [ "$PLAYONLINUX" = "" ]then exit 0 fi Solution de remplacement [ "$PLAYONLINUX" = "" ] && exit 0 source "$PLAYONLINUX/lib/sources" 4 - Ordre des arguments (Obligatoire)Pour que votre script soit compatible sous Mac et BSD, il faut respecter l'ordre des arguments dans certaines commandes.À bannir rm dossier -rf mkdir dossier -p cp dossier -r Solution de remplacement rm -rf dossier mkdir -p dossier cp -r dossier 5 - Ne pas utiliser wget pour télécharger un script externe (obligatoire)À bannirwget http://winezeug.googlecode.com/svn/trunk/winetricks --output-document=winetricks bash winetricks -q some_packages Solution de remplacement POL_Winetricks some_packages POL_Call POL_Install_package 6 - Ne pas utiliser plein de fois echo pour écrire dans un fichier (obligatoire)À ne pas utiliserecho "ligne 1" > mon_fichier echo "ligne 2" >> mon fichier ... Solution de remplacement cat << EOF > mon_fichier ligne 1 ligne 2 ... EOF 7 - En-tête du script (recommandé)À utiliser#!/bin/bash # Date : (2009-05-30 17-30) # Last revision : (2009-05-30 17-30) # Wine version used : # Distribution used to test : # Author : Your name # Script licence : # Program licence : # Depend : 8 - Utiliser exit en fin de script (obligatoire)La signature GPG est insérée à la fin de votre script. Si vous n'écrivez pas exit, votre script ne pourra pas être signé sans que bash essaie d'interpréter la signature.À utiliser POL_SetupWindow_Close exit 9 - À propos des versions de WineIl est possible de fixer votre programme à une version de Wine avec laquelle il fonctionne si celui-ci est assez complexe (pour tous les jeux donc). Par contre, nous vous déconseillons d'utiliser cette méthode pour les petits programmes comme mp3tag.10 - Ne pas télécharger les images sur Wikipedia pour les redimensioner avec convert (Obligatoire)À bannirwget http://www.google.com/images/logos/sketchup_logo.png --output-document="$REPERTOIRE/tmp/leftnotrotated.png" convert "$REPERTOIRE/tmp/leftnotrotated.png" -rotate 270 "$REPERTOIRE/tmp/leftnotscaled.png" convert "$REPERTOIRE/tmp/leftnotscaled.png" -scale 150x356\! "$REPERTOIRE/tmp/left.png" POL_SetupWindow_Init "" "$REPERTOIRE/tmp/left.png" 11 - Faire attention à ce qu'on fait après un cd ! (Obligatoire)À ne pas utilisercd $WINEPREFIX/windows/tmp rm ./* # Si la commande cd échoue, on ne sait pas ce qui va être supprimé Solution de remplacement - En règle générale, éviter d'utiliser rm, mais sinon : rm $WINEPREFIX/windows/tmp/* 12 - Interdiction d'utiliser les fonctions PlayOnLinux v2 (Obligatoire)13 - Utilisation de $REPERTOIRE (Obligatoire)À ne pas utiliser$HOME/.PlayOnLinux Solution de remplacement $REPERTOIRE 14 - Utiliser POL_SetupWindow_wait_next_signal avant les grosses commandes (unzip, tar, wine, ...)- Sinon, le GUI se bloque et l'utilisateur risque de penser à un bug.15 - Ne pas utiliser cfg_check, ça sert a rien16 - Prévenir l'utilisateur si le jeu nécessite de passer la protection CD/DVD, sans l'inciter à le faire ! (Tout un art) (Vivement recommandé)- Interdiction d'inciter au piratage17 - Ne pas inclure le patch dans le script, sauf s'il est nécessaire à son fonctionnement (recommandé, voire obligatoire suivant les cas)- Créer un script séparé18 - Ne pas installer des bibliothèque directement dans un script, utiliser POL_Call (idem)À partir d'ici, ce sont juste des suggestions que vous pouvez suivre ou non, si l'envie vous prend19 - Utiliser les fonctions POL_Debug- Il n'y a aucune documentation pour le moment, donc vous pouvez vous inspirer du script League of Legends (Catégorie Testing) si vous êtes motivé. 20 - Éviter les bizarreries si possible ...- Si on a du mal à comprendre un script, il sera refusé. On déconseille donc les ligne awk et sed qui peuvent faire des kilomètres (et qui risquent de foirer sur un autre système comme Mac, par la même occasion)21 - Utiliser POL_SetupWindow_auto_shortcut, plutôt que POL_SetupWindow_make_shortcut22 - Pas besoin d'utiliser POL_LoadVar_PROGRAMFILES23 - Commenter votre script24 - Écrire une description, et envoyer les icônes, les miniatures ...- La case description permet d'écrire une description du logiciel et non pas du script en lui même. Le BBCode est autorisé- L'icône d'installation est de taille 22x22 - L'icône du jeu est de taille minimum 32x32 - La miniature est de taille 200x150 25 - Écrire le script au moins en anglais et/ou en français- C'est cool si on a la version anglaise quand même26 - À propos des signatures.- Même si vous ne voulez pas que votre script soit accessible à tous les utilisateur de PlayOnLinux, vous pouvez nous demander une signature pour que PlayOnLinux ne râle pas à l'ouverture de celui-ci. (Si vous voulez installer un programme perso sur un grand nombre d'ordinateurs)27 - En général, les petits programmes marchent sous Mac. Donc si votre script est bien écrit, vous pouvez cocher la case PlayOnMac- Attention avec les jeux.28 - Éviter de détecter la dernière version du logiciel...... sauf s'il y a un fichier fait exprès sur le site officiel.On revient à la remarque 20. Edited by Salvatos |
248 people online


