aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO.md1
-rwxr-xr-xshare/hydra/roles38
2 files changed, 38 insertions, 1 deletions
diff --git a/TODO.md b/TODO.md
index 86347e3..2e634db 100644
--- a/TODO.md
+++ b/TODO.md
@@ -5,7 +5,6 @@ Hydra
-----
- bootless: properly support `$subdevice` in parted or always use first partition (like `/dev/sdb1`).
- - roles: show available node roles.
- whereis: show where's a website, service or node might be (DNS repo, DNS lookup and node definition).
- newkeys:
- split SSH/OpenPGP check: just generate OpenPGP key if absent.
diff --git a/share/hydra/roles b/share/hydra/roles
new file mode 100755
index 0000000..2e6923b
--- /dev/null
+++ b/share/hydra/roles
@@ -0,0 +1,38 @@
+#!/bin/bash
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/>.
+
+# Load.
+source $APP_BASE/lib/hydra/functions || exit 1
+hydra_config_load
+
+# Validation
+if [ -z "$PUPPET" ]; then
+ echo "No PUPPET parameter defined at $HYDRA preferences."
+ exit 1
+fi
+
+# Show all available node roles
+if [ -d "$PUPPET/modules/nodo/manifests/role" ]; then
+ (
+ cd $PUPPET/modules/nodo/manifests/role
+
+ # Tree version
+ tree --prune --noreport | sed -e 's/.pp$//'
+
+ # Class name version
+ #grep -R -e "^class " * | cut -d ' ' -f 2
+ )
+fi