########################################################################## # Category/actions/arguments file # # # Except for general_arguments, this file contains 3 levels # as in this sample command line: # # yunohost monitor info --cpu --ram # ^ ^ ^ ^ # (script) | category | action | parameters # # # Above example will lead to the function 'monitor_info(args)' # in the file 'yunohost_monitor.py' with 'cpu' and 'ram' # stored in an 'args' dictionnary. # # Usage: # You can add a category at the first level, action at the second one, # and arguments at the third one. # If a connexion is needed for the action, don't forget to add it to # the action parameters (ldap, repo, dns or firewall). # # Documentation: # You can see all arguments settings at the argparse documentation: # http://docs.python.org/dev/library/argparse.html # #argparse.ArgumentParser.add_argument # # Don't forget to turn argument yaml style (setting: value) # ########################################################################## # TODO: Add patern for all this ############################# # General args # ############################# general_arguments: -v: full: --version help: Display YunoHost version action: version version: YunoHost 2.0 beta1 ############################# # User # ############################# user: category_help: Manage users actions: ### user_list() list: action_help: List users arguments: --fields: help: fields to fetch nargs: "+" -f: full: --filter help: LDAP filter used to search -l: full: --limit help: Maximum number of user fetched -o: full: --offset help: Starting number for user fetching ### user_create() create: action_help: Create user arguments: -u: full: --username help: Must be unique ask: "Username" pattern: '^[a-z0-9_]+$' -f: full: --firstname ask: "Firstname" -l: full: --lastname ask: "Lastname" -m: full: --mail help: Main mail address must be unique ask: "Mail address" pattern: '^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$' -p: full: --password ask: "User password" password: yes ### user_delete() delete: action_help: Delete user arguments: -u: full: --users help: Username of users to delete ask: "Users to delete" pattern: '^[a-z0-9_]+$' nargs: "*" --purge: action: store_true ### user_update() update: action_help: Update user informations arguments: username: help: Username of user to update -f: full: --firstname -l: full: --lastname -m: full: --mail -p: full: --change-password help: New password to set metavar: PASSWORD --add-mailforward: help: Mailforward addresses to add nargs: "*" metavar: MAIL --remove-mailforward: help: Mailforward addresses to remove nargs: "*" metavar: MAIL --add-mailalias: help: Mail aliases to add nargs: "*" metavar: MAIL --remove-mailalias: help: Mail aliases to remove nargs: "*" metavar: MAIL ### user_info() info: action_help: Get user informations arguments: user-or-mail: help: Username or mail to get informations ############################# # Domain # ############################# domain: category_help: Manage domains actions: ### domain_list() list: action_help: List domains arguments: -f: full: --filter help: LDAP filter used to search -l: full: --limit help: Maximum number of domain fetched -o: full: --offset help: Starting number for domain fetching ### domain_add() add: action_help: Create a custom domain arguments: domains: help: Domain name to add nargs: '+' pattern: '^([a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)(\.[a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)*(\.[a-zA-Z]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)$' -r: full: --raw help: Auto-configure Apache and LemonLDAP for the domain action: store_true ### domain_remove() remove: action_help: Delete domains arguments: domains: help: Domain(s) to delete nargs: "+" pattern: '^([a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)(\.[a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)*(\.[a-zA-Z]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)$' ### domain_info() info: action_help: Get domain informations arguments: domain: help: "" pattern: '^([a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)(\.[a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)*(\.[a-zA-Z]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)$' ### domain_renewcert() renewcert: action_help: Renew domain certificate arguments: domain: help: "" pattern: '^([a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)(\.[a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)*(\.[a-zA-Z]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)$' ############################# # App # ############################# app: category_help: Manage apps actions: ### app_fetchlist() fetchlist: action_help: Fetch application list from app server arguments: -u: full: --url help: URL of remote JSON list (default http://fapp.yunohost.org/app/list/raw) -n: full: --name help: Name of the list (default fapp) ### app_listlists() listlists: action_help: List fetched lists ### app_removelist() removelist: action_help: Remove list from the repositories arguments: -n: full: --name help: Name of the list to remove ask: "List to remove" pattern: '^[a-z0-9_]+$' ### app_list() list: action_help: List apps arguments: -l: full: --limit help: Maximum number of app fetched -o: full: --offset help: Starting number for app fetching -f: full: --filter help: Name filter of app_id or app_name -r: full: --raw help: Return the full app_dict action: store_true ### app_map() map: action_help: List apps by domain arguments: -a: full: --app help: Specific app to map -r: full: --raw help: Return complete dict action: store_true ### app_install() TODO: Write help install: action_help: Install apps arguments: app: help: App to install -d: full: --domain ask: "App domain" pattern: '^([a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)(\.[a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)*(\.[a-zA-Z]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)$' -p: full: --path default: "/" pattern: '^\/([a-zA-Z-_\/\.0-9])*$' -l: full: --label -m: full: --mode help: level of privacy of the app (public|protected|private) default: 'private' ### app_remove() TODO: Write help remove: action_help: Remove app arguments: app: help: App(s) to delete -i: full: --instance help: App instance number to delete nargs: '*' ### app_upgrade() upgrade: action_help: Upgrade app arguments: app: help: App(s) to upgrade (default all) nargs: "*" -i: full: --instance help: App instance number to upgrade nargs: "*" -u: full: --url help: Git url to fetch for upgrade -f: full: --file help: Folder or tarball for upgrade ### app_info() TODO: Write help info: action_help: Get app informations arguments: app: help: App ID -i: full: --instance help: App instance number -r: full: --raw help: Return the full app_dict action: store_true ### app_addaccess() TODO: Write help addaccess: action_help: Grant access right to users (everyone by default) arguments: apps: nargs: "+" -u: full: --users nargs: "+" ### app_removeaccess() TODO: Write help removeaccess: action_help: Revoke access right to users (everyone by default) arguments: apps: nargs: "+" -u: full: --users nargs: "+" ############################# # Repository # ############################# repo: category_help: Manage app repositories actions: ### repo_list() list: action_help: List repositories arguments: -f: full: --filter help: LDAP filter used to search -l: full: --limit help: Maximum number of repository fetched -o: full: --offset help: Starting number for repository fetching ### repo_add() add: action_help: Add app repository arguments: url: help: URL of the repository -n: full: --name help: Unique name of the repository ### repo_remove() remove: action_help: Remove repository arguments: repo: help: Name or URL of the repository ### repo_update() update: action_help: Update app list from the repositories ############################# # Monitor # ############################# monitor: category_help: Monitoring functions actions: ### monitor_info() info: action_help: Check System arguments: -m: full: --memory help: Check Memory action: store_true -c: full: --cpu help: Check CPU action: store_true -d: full: --disk help: Check Disk action: store_true -i: full: --ifconfig help: Show Ip and MAC Adress action: store_true -u: full: --uptime help: Show Uptime action: store_true -p: full: --public help: Show IP public action: store_true process: action_help: Check Process arguments: -e: full: --enable help: Enable process metavar: PROCESS -d: full: --disable help: Disable process metavar: PROCESS --start: help: Start process metavar: PROCESS --stop: help: Stop process metavar: PROCESS -c: full: --check help: Check process metavar: PORT -i: full: --info help: Process info action: store_true ############################# # Firewall # ############################# firewall: category_help: Manage firewall rules actions: ### firewall_list() list: action_help: List all firewall rules ### firewall_reload() reload: action_help: Reload all firewall rules arguments: -u: full: --upnp help: upnp action: store_true ### firewall_allow() allow: action_help: Allow connection port/protocol arguments: port: help: Port to open protocol: help: Protocol associated with port choices: - UDP - TCP - Both -i: full: --ipv6 help: ipv6 action: store_true -u: full: --upnp help: upnp action: store_true ### firewall_disallow() disallow: action_help: Disallow connection arguments: port: help: Port to open protocol: help: Protocol associated with port choices: - UDP - TCP - Both -i: full: --ipv6 help: ipv6 action: store_true -u: full: --upnp help: upnp action: store_true ### firewall_installupnp() installupnp: action_help: Add upnp cron ### firewall_removeupnp() removeupnp: action_help: Remove upnp cron ### firewall_stop() stop: action_help: Stop iptables and ip6tables ### firewall_checkupnp() checkupnp: action_help: check if UPNP is install or not (0 yes 1 no) ############################# # DynDNS # ############################# dyndns: category_help: Subscribe and Update DynDNS Hosts actions: ### dyndns_subscribe() subscribe: action_help: Subscribe to a DynDNS service arguments: --subscribe-host: help: Dynette HTTP API to subscribe to default: "dyndns.yunohost.org" -d: full: --domain help: Full domain to subscribe with -k: full: --key help: Public DNS key ### dyndns_update() update: action_help: Update IP on DynDNS platform arguments: --dyn-host: help: Dynette DNS server to inform default: "dynhost.yunohost.org" -d: full: --domain help: Full domain to subscribe with -k: full: --key help: Public DNS key -i: full: --ip help: IP address to send ### dyndns_installcron() installcron: action_help: Install IP update cron ### dyndns_removecron() removecron: action_help: Remove IP update cron ############################# # Tools # ############################# tools: category_help: Specific tools actions: ### tools_ldapinit() ldapinit: action_help: YunoHost LDAP initialization ### tools_adminpw() adminpw: action_help: Change admin password arguments: -o: full: --old-password ask: "Actual admin password" password: yes -n: full: --new-password ask: "New admin password" password: yes ### tools_maindomain() maindomain: action_help: Main domain change tool arguments: -o: full: --old-domain pattern: '^([a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)(\.[a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)*(\.[a-zA-Z]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)$' -n: full: --new-domain ask: "New main domain" pattern: '^([a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)(\.[a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)*(\.[a-zA-Z]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)$' ### tools_postinstall() postinstall: action_help: YunoHost post-install arguments: -d: full: --domain help: YunoHost main domain ask: "Main domain" pattern: '^([a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)(\.[a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)*(\.[a-zA-Z]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)$' -p: full: --password help: YunoHost admin password ask: "New admin password" password: yes --dyndns: help: Subscribe domain to a DynDNS service action: store_true