Le CLI permet d'administrer le Wiff en ligne de commande.
La commande `wiff' permet de manipuler et administrer les contextes Freedom.
A terme, les opérations actuellement accessibles à travers l'UI Web, seront accessibles en ligne de commande à l'aide de cette commande `wiff'.
La commande `wiff' doit être lancé sous `root'. Pour cela, vous pouvez soit vous logger sous le compte `root' pour exécuter la commande, soit utiliser `sudo pour exécuter celle-ci.
Si vous n'êtes pas `root' sur le serveur, et que les opérations d'administrations s'effectuent avec `sudo' :
$ sudo /var/www/wiff/wiff help Password: ****** [message d'aide]
Si vous avez accès au compte `root' sur le serveur :
# /var/www/wiff/wiff help [message d'aide]
Par la suite, nous utiliserons la notation de ce dernier cas (`# /var/www/wiff/wiff').
list context [--pretty]
Cette opération permet d'afficher les contextes installés.
# /var/www/wiff/wiff list context developpement test production # /var/www/wiff/wiff list context --pretty Name Description ----------------------------------------------------------------------------------- developpement Développement test Test production Production
context <context-name> module list installed [--pretty]
Cette opération affiche les modules installés dans le contexte sélectionné.
# /var/www/wiff/wiff context test module list installed freedom-core (2.14.1-12) freedom-vault (3.10.0-0) freedom-fckeditor (2.6.3-5) freedom-common (0.6.0-0) freedom (2.14.3-18) freedom-webdesk (1.2.0-2)
context <context-name> module list available [--pretty]
Cette opération affiche la liste des modules disponibles sur les dépôt de paquets accessibles par HTTP ou FTP.
# /var/www/wiff/wiff context test module list available freedom-vault (3.10.0-0) freedom-extjs (3.0.0-4) freedom (2.14.3-18) freedom-core (2.14.1-12) [...] freedom-searchsheet (0.2.0-0) freedom-ecm (0.0.4-0) freedom-theme (0.0.1-3) freedom-url (0.0.0-3)
context <context-name> module list upgrade [--pretty]
Cette opération permet d'afficher la liste des modules installés dont une mise-à-jour est disponible sur les dépôts de paquets.
# /var/www/wiff/wiff context test module list upgrade freedom-core (2.14.1-12) freedom (2.14.3-18)
context <context-name> module install [options] <localPackagePath> context <context-name> module install [options] <moduleName>
Cette opération permet d'installer un module contenu dans un paquet local (archive .webinst stocké en local sur le serveur) ou à partir d'un paquet disponible sur un dépôt de paquets distant accessible par HTTP ou FTP.
Les options disponibles sont :
–nopre' permet de ne pas exécuter les processus de `pre-install' déclarés par le paquet.–nopost' permet de ne pas exécuter les processus de `post-install' déclarés par le paquet.–nothing' permet de ne pas exécuter les processus de `pre-install' et de `post-install' déclarés par le paquet.–force' permet de forcer l'installation du paquet même si celui-ci est déjà installé.Installation d'un paquet distant :
# /var/www/wiff/wiff context test module install freedom Will install (or upgrade) the following packages: - freedom-core-2.14.1-12 - freedom-vault-3.10.0-0 - freedom-fckeditor-2.6.3-5 - freedom-common-0.6.0-0 - freedom-2.14.3-18 Proceed to installation ? [Y/n] Y Processing required module 'freedom-core' (2.14.1-12) for install. Downloading module 'freedom-core-2.14.1-12'... [OK] Parameters for module 'freedom-core' ------------------------------------ client_name ? [] Test core_db ? [test] authtype ? [html] apacheuser ? [www-data] _www Doing 'pre-install' of module 'freedom-core'. [...] Doing 'unpack' of module 'freedom-core'. Unpacking module 'freedom-core'... [OK] Doing 'post-install' of module 'freedom-core'. Running 'Initialize system database'... [OK] Running 'Record core application in database'... [OK] Running 'Record users application in database'... [OK] Running 'Record access application in database'... [OK] Running 'Record authent application in database'... [OK] Running 'Record appmng application in database'... [OK] Running 'Generate traduction catalog'... [OK] Running 'Register client name'... [OK] Processing required module 'freedom-vault' (3.10.0-0) for install. Downloading module 'freedom-vault-3.10.0-0'... [OK] Doing 'pre-install' of module 'freedom-vault'. Doing 'unpack' of module 'freedom-vault'. Unpacking module 'freedom-vault'... [OK] Doing 'post-install' of module 'freedom-vault'. Running 'Process programs/record_application VAULT'... [OK] Running 'Process wsh.php --api=vault_init'... [OK] Running 'Process programs/update_catalog'... [OK] Processing required module 'freedom-fckeditor' (2.6.3-5) for install. Downloading module 'freedom-fckeditor-2.6.3-5'... [OK] Doing 'pre-install' of module 'freedom-fckeditor'. Doing 'unpack' of module 'freedom-fckeditor'. Unpacking module 'freedom-fckeditor'... [OK] Doing 'post-install' of module 'freedom-fckeditor'. Processing required module 'freedom-common' (0.6.0-0) for install. Downloading module 'freedom-common-0.6.0-0'... [OK] Doing 'pre-install' of module 'freedom-common'. Doing 'unpack' of module 'freedom-common'. Unpacking module 'freedom-common'... [OK] Doing 'post-install' of module 'freedom-common'. Running 'Process programs/record_application FDC'... [OK] Running 'Process programs/update_catalog'... [OK] Processing required module 'freedom' (2.14.3-18) for install. Downloading module 'freedom-2.14.3-18'... [OK] Doing 'pre-install' of module 'freedom'. Running 'Check php function gd_info'... [OK] Running 'Check php function cal_info'... [OK] Running 'Check php class XSLTProcessor'... [OK] Doing 'unpack' of module 'freedom'. Unpacking module 'freedom'... [OK] Doing 'post-install' of module 'freedom'. Running 'Process programs/app_post FDL I'... [OK] Running 'Process programs/record_application FDL I'... [OK] Running 'Process programs/app_post FDL U'... [OK] Running 'Process programs/app_post USERCARD I'... [OK] Running 'Process programs/record_application USERCARD I'... [OK] Running 'Process programs/app_post USERCARD U'... [OK] Running 'Process programs/record_application GENERIC I'... [OK] Running 'Process programs/record_application ONEFAM I'... [OK] Running 'Process programs/record_application FUSERS I'... [OK] Running 'Process programs/app_post FREEDOM I'... [OK] Running 'Process programs/record_application FREEDOM I'... [OK] Running 'Process programs/app_post FREEDOM U'... [OK] Running 'Process programs/record_application FGSEARCH I'... [OK] Running 'Process wsh.php --api=crontab --cmd=register --file=FREEDOM/freedom.cron'... [OK] Running 'Process programs/update_catalog'... [OK] Done.
Installation d'un paquet local :
# /var/www/wiff/wiff context test module install /tmp/foo-1.2.3-4.webinst Processing required module 'foo' (1.2.3-4) for install. Module 'foo-1.2.3-4' is already downloaded in '/private/tmp/foo-1.2.3-4.webinstkeZbf9'. Doing 'pre-install' of module 'foo'. Running 'Check php class XML_Parser'... [OK] Running 'Check php function imap_open'... [OK] Doing 'unpack' of module 'foo'. Unpacking module 'foo'... [OK] Doing 'post-install' of module 'foo'. Running 'Process programs/app_post FOO I'... [OK] Running 'Process programs/record_application FOO'... [OK] Running 'Process programs/app_post FOO U'... [OK] Running 'Process programs/update_catalog'... [OK] Done.
context <context-name> module upgrade [options] <localPackagePath> context <context-name> module upgrade [options] <moduleName>
Cette opération permet d'upgrader un module à partir d'un paquet local (archive .webinst stocké en local sur le serveur) ou à partir d'un paquet disponible sur un dépôt de paquets distant accessible par HTTP ou FTP.
Les options disponibles sont :
–nopre' permet de ne pas exécuter les processus de `pre-upgrade' déclarés par le paquet.–nopost' permet de ne pas exécuter les processus de `post-upgrade' déclarés par le paquet.–nothing' permet de ne pas exécuter les processus de `pre-upgrade' et de `post-upgrade' déclarés par le paquet.–force' permet de forcer l'upgrade du paquet même si une version supérieure ou égale est déjà installée.# /var/www/wiff/wiff context test module upgrade /tmp/foo-2.0.0-1.webinst Processing required module 'foo' (2.0.0-1) for upgrade. Module 'foo-2.0.0-1' is already downloaded in '/private/tmp/foo-2.0.0-1.webinstwEvSU3'. Doing 'pre-upgrade' of module 'foo'. Running 'Check php class XML_Parser'... [OK] Running 'Check php class XML_RSS'... [OK] Running 'Check php function imap_open'... [OK] Doing 'unpack' of module 'foo'. Unpacking module 'foo'... [OK] Doing 'post-upgrade' of module 'foo'. Running 'Process programs/pre_migration FOO'... [OK] Running 'Process programs/app_post FOO U'... [OK] Running 'Process programs/record_application FOO'... [OK] Running 'Process programs/post_migration FOO'... [OK] Running 'Process programs/update_catalog'... [OK] Done.
context <context-name> param show [<moduleName>]
Cette opération permet d'afficher la liste des paramètres des modules installés.
# /var/www/wiff/wiff context test param show freedom-core:client_name = Test freedom-core:core_db = test freedom-core:authtype = html freedom-core:apacheuser = _www foo:bar = baz foo:bir = biz
# /var/www/wiff/wiff context test param show foo foo:bar = baz foo:bir = biz
context <context-name> param get <module-name>:<param-name>
Cette opération permet d'afficher la valeur d'un paramètre d'un module donné.
# /var/www/wiff/wiff context test param get foo:bar foo:bar = baz
context <context-name> param set <module-name>:<param-name> <param-value>
Cette opération permet de positionner la valeur d'un paramètre d'un module donné.
# /var/www/wiff/wiff context <context-name> param set foo:bar buzz foo:bar = buzz
wstop <context-name>
Cette opération permet d'exécuter le script historique `wstop' sur un contexte.
# /var/www/wiff/wiff wstop test check update needed (/var/www/test/wcheck)
wstart <context-name>
Cette opération permet d'exécuter le script historique `wstart' sur un contexte.
# /var/www/wiff/wiff wstart test
whattext <context-name>
Cette opération permet d'exécuter le script historique `whattext' sur un contexte.
# /var/www/wiff/wiff whattext test
context <context-name> shell context <context-name> exec <command> [<command-options>]]
Cette opération permet d'ouvrir un shell, ou d'exécuter une commande, sous l'uid de l'utilisateur exécutant le serveur Apache afin d'effectuer manuellement des opérations d'administration spécifiques.
Par défaut, si aucune commande n'est spécifié, le shell par défaut définit pour l'utilisateur du serveur Apache est lancé. Si l'utilisateur n'a pas de shell associé, il faudra alors spécifier le chemin du shell qu'on souhaite exécuter avec la variante `exec'.
Lors de l'ouverture du shell, ou de l'exécution de la commande, les variables d'environnement suivantes sont pré-positionnés :
HOME' : le répertoire racine du contexte.wpub' : le répertoire racine du contexte (pour compatibilité scripts post/migr de Freedom).pgservice_core' : le service Postgresql de la base `core' (pour compatibilité scripts post/migr de Freedom).pgservice_freedom' : le service Postgresql de la base `freedom' (pour compatibilité scripts post/migr de Freedom).freedom_context' : vaut toujours ”default” (pour compatibilité scripts post/migr de Freedom).# /var/www/wiff/wiff context test shell /bin/bash wiff(test)~$ id uid=70(_www) gid=70(_www) egid=20(staff) groups=70(_www) wiff(test)~$ pwd /var/www/test wiff(test)~$ ./FOO/FOO_post U [...]
# /var/www/wiff/wiff context test exec /usr/bin/tar -zcf /tmp/archive.tar.gz .