App::C...luster(3pm)

okay bestie come closer β€” this is the manual page for App::C...luster(3pm), and yes we are reading a manpage together like it's a group chat. πŸ’– Perl-flavored, user-contributed, absolutely iconic, and shorter than you'd think. Let's go. ✨


🌸 SYNOPSIS 🌸

bestie. there is literally nothing here. the SYNOPSIS showed up, looked at us, and said "not today." 😭 moving on, slay.


πŸ¦‹ DESCRIPTION πŸ¦‹

It's an object representing application configuration. that's it, that's the whole vibe. πŸŽ€ your config lives in an object now. main character energy, no cap.


πŸ’… METHODS πŸ’…

🌈 the whole roster 🌈

  • $cluster=ClusterSSH::Cluster->new(); β€” bestie this makes you a brand new object ✨ and heads up: the object is supposed to be common across all invocations, so like, one of them, shared, not a fresh one every single time. iykyk.
  • $cluster->get_cluster_entries($filename); β€” reads in /etc/clusters, $HOME/.clusterssh/clusters, and any other file name you hand it, and registers all the tags it finds. look at her go.
  • @external_tags=list_external_clusters() β€” calls an external script with -L to list out all the tags that are available. delegation, we love to see it.
  • @resolved_tags=get_external_clusters(@tags) β€” takes @tags and uses that external script to resolve them into hostnames. tags in, hostnames out. πŸ¦‹
  • $cluster->get_tag_entries($filename); β€” reads in /etc/tags, $HOME/.clusterssh/tags, plus any other file name you pass, and registers the tags it finds. yes it's basically the tag-flavored twin of the cluster one. they're sisters.
  • $cluster->read_cluster_file($filename); β€” reads in the cluster file you gave it and registers the tags found in there. simple, clean, done.
  • $cluster->expand_filename($filename); β€” expands ~ or $HOME inside a filename. because of course your path has a ~ in it. πŸ™ˆ
  • $cluster->read_tag_file($filename); β€” reads in the tag file you gave it and registers the tags found. same energy, different file.
  • $cluster->register_tag($tag,@hosts); β€” registers that tag name against the host names you provided. matching them up like a group chat invite list.
  • $cluster->register_host($host,@tags); β€” the flip side: registers the given host onto the tags you provided. one host, many tags, multitasking queen.
  • @entries = $cluster->get_tag('tag'); β€” pulls all entries for the given tag.
  • $entries = $cluster->get_tag('tag'); β€” same call, but here's the tea πŸ’…: depending on context you get back an array of hosts or the number of hosts in the array. scalar context vs list context, bestie, it's giving duality.
  • @tags = $cluster->list_tags(); β€” hands you an array of all the available tag names. the full guest list. πŸ‘‘
  • %tags = $cluster->dump_tags(); β€” returns a hash of all tag data. the whole thing, dumped, no filter. iconic.
  • @tags = $cluster->expand_glob( $type, $name, @items ); β€” runs shell expansion against every item in @items. $type is either 'node' or 'tag', and $name is the node or tag name. those attributes get shown to the user if something goes wrong with the expansion, so you can actually track down the source instead of just vibing in confusion. we stan debuggability.

friendly reminder bestie: this whole page is object representing application configuration territory β€” the object wants to be shared across all invocations, and the tag/cluster files get read from /etc/clusters, $HOME/.clusterssh/clusters, /etc/tags and $HOME/.clusterssh/tags unless you hand over another file name. 🫢

and that's the page, bestie!! periodt. this little gem is perl v5.42.2, dated 2026-05-05, filed under App::C...luster(3pm) in the User Contributed Perl Documentation corner of the internet. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«Ά

πŸ“¦ where this page comes from