#!/usr/bin/env bash set -eu VDN_PATH=$(readlink -f $(dirname $0)/..); synopsis() { cat << EOF Usage : $(basename $0) [-h] EOF } help() { cat << EOF `basename $0` extrait la documentation à partir de l'aide des commandes. `synopsis` -h : affiche cette aide EOF } usage() { synopsis exit 1 } args() { local opt while getopts "h" opt; do case $opt in h) help; exit 0;; ?) usage;; esac done shift $(($OPTIND - 1)) [ $# -ne 0 ] && usage || : } scan() { cd $VDN_PATH/bin for i in *; do [[ $i =~ .rb$ ]] && continue [[ $i =~ .sh$ ]] && continue [ ! -f $i ] && continue [ ! -x $i ] && continue echo "=== $i ===" $i -h echo done } args $@ #scan doc() { echo "=== $1 ===" echo -n "" $1 -h echo "" echo } cat << EOF > /tmp/doc.txt ===== Liste des commandes VDN ==== ==== Pour l'administrateur ==== $(doc vdn-prepare) ==== Pour l'utilisateur ==== $(doc vdn-clean) $(doc vdn-download-disks) $(doc vdn-halt) $(doc vdn-infos) $(doc vdn-kill) $(doc vdn-list) $(doc vdn-start) ==== Pour le développeur (de disques et de réseaux) ==== $(doc vdn-build-network) $(doc vdn-clean-network) $(doc vdn-delete-disks) $(doc vdn-delete) $(doc vdn-scp) $(doc vdn-ssh) $(doc vdn-ssh-copy-id) $(doc vdn-ssh-loop) ==== Non classées ==== $(doc vdn-alive) $(doc vdn-alives) $(doc vdn-build) $(doc vdn-config) $(doc vdn-create-slash) $(doc vdn-diff) $(doc vdn-doc) $(doc vdn-graph) $(doc vdn-kvm) $(doc vdn-mount-chroot) $(doc vdn-open-network) $(doc vdn-push) $(doc vdn-restart) $(doc vdn-save) $(doc vdn-scripts) $(doc vdn-set-network-dir) $(doc vdn-set-var) $(doc vdn-shell) $(doc vdn-show) $(doc vdn-ssh-loop) $(doc vdn-start-wrapper) $(doc vdn-terminal) $(doc vdn-test) $(doc vdn-test-kvm) $(doc vdn-upload-disks) $(doc vdn-vnc-viewer) EOF cat /tmp/doc.txt