YACG(1)

πŸ“¦ version 1.0, in epel 9

πŸ¦‹ YACG(1) β€” yet another configuration generator, bestie ✨

okay so picture this: it's a Perl manual page, it's called yacg, and it's literally the moment your whole config workflow gets its glow-up. welcome to YACG(1), girl. let's go πŸ’…


✨ NAME ✨

yacg β€” Yet Another Configuration Generator. yes that's the whole name. she's humble. she's iconic. πŸŽ€


🌸 SYNOPSIS 🌸

yacg [OPTIONS] PATH

yacg --help|--manual|--version

like, you give her some OPTIONS and a PATH and she goes. or you just ask for help, the manual, or the version β€” those three are their own whole vibe, no PATH needed 🫢


πŸ’– DESCRIPTION πŸ’–

so here's the tea: yacg reads the high-level configuration file you point her at, carefully validates it, and then generates ready-to-use (configuration) files. careful is the key word β€” she is not about to let a messy config slide through, no cap πŸ”₯

you can mess with that high-level configuration file using the --set, --unset and --merge options. and if you wanna just look at it instead of touching anything? --dump is your girl. πŸ‘€

the generated files can land at their final location (that's the default, main character energy) or somewhere else entirely if you use --rootdir. and if you're feeling cautious, you can tell yacg to just check the files without changing them via --noaction. she'll look, she won't touch. respectful. 🧚

yacg can also use a "manifest" file to keep track of which files she generated, so that later she can remove the files that she doesn't generate anymore β€” that's the --manifest and --clean combo, iykyk. πŸ—‚οΈ

and here's the plot twist: yacg by herself does not know how to generate files. nope. she needs the --home option (and optionally the --include option) to be told where to find domain specific modules that actually know how to translate the high-level configuration into individual ready-to-use files. she's the manager, they're the talent. periodt πŸ’€


πŸ’… OPTIONS πŸ’…

  • --clean β€” removes the files that are present in the old "manifest" file but not in the new one. out with the old, literally 🧹
  • --debug, -d β€” show debugging information. she'll tell you everything bestie πŸ”
  • --dump β€” instead of generating files, dump the high-level configuration. and plot twist: this option can be given multiple times:
    1. dump after loading the configuration
    2. dump after hacking the configuration
    3. dump after validating the configuration

like a little behind-the-scenes tour at every stage 🎬

  • --dump-format NAME β€” sets the output format for the --dump option. possible values: "Config::General" (the default, queen of defaults) and "JSON" ✨
  • --help, -h, -? β€” show some help 🫢
  • --home, -H PATH β€” set the home directory where the "cfg", "lib" and "tpl" sub-directories may be located 🏠
  • --include, -I PATH β€” add the given directory to the list of paths that will be looked at to find configuration files, Config::Generator modules or templates. and yes, this option can be given multiple times β€” stack 'em 🌈
  • --manifest PATH β€” store the list of files that yacg handled in the given "manifest" file πŸ“‹
  • --manual, -m β€” show this manual. hi, you found it πŸ‘‹
  • --merge PATH=VALUE β€” hack the loaded configuration to merge the given value at the given path 🧬
  • --noaction, -n β€” print what would be done but do not actually touch the generated files. all talk, no action, on purpose πŸ™ˆ
  • --quiet, -q β€” set the verbosity level to 0. silence. peace. 🀫
  • --rndfile PATH β€” set the path of the file that will be used as seed to generate random data 🎲
  • --rootdir PATH β€” set the path specifying where the generated files will be put πŸ“
  • --set PATH=VALUE β€” hack the loaded configuration to set the given value at the given path ✍️
  • --spec PATH β€” store the list of files that yacg handled in the given "spec" file (same format as rpm's spec %files) πŸ“¦
  • --unset PATH β€” hack the loaded configuration to unset the given path. gone. deleted. πŸ«₯
  • --verbose, -v β€” increase the verbosity level (default: 1). more words, more lore πŸ—£οΈ
  • --version β€” display version information 🏷️

πŸ”₯ SEE ALSO πŸ”₯

Config-Generator. go read it, bestie, it's giving essential lore πŸ“š


πŸ‘‘ AUTHOR πŸ‘‘

Lionel Cons <http://cern.ch/lionel.cons>

Copyright (C) CERN 2013-2016


and that's the whole page, bestie πŸŽ€ this was perl v5.32.1, dated 2019-07-26, and it was iconic from start to finish. go generate something cute πŸ’œ

πŸ“¦ where this page comes from