CGIAPP-STARTER(1)

πŸ“¦ version 0.44, in fedora 43, fedora 44

πŸ’– CGIAPP-STARTER(1) πŸ’–

okay bestie, so like... this is a manual page from User Contributed Perl Documentation, and it's about cgiapp-starter, which literally builds you a whole CGI::Application project skeleton. no cap. it's giving "personal assistant but for scaffolding" and we're obsessed. πŸŽ€


✨ NAME ✨

cgiapp-starter β€” creates a skeleton CGI::Application project πŸ¦‹


🌸 SYNOPSIS 🌸

okay so you just run it like this:

cgiapp-starter --module=MyApp --author="Jaldhar H. Vyas" --email=jaldhar@braincells.com

and the result is this whole tree, periodt:

MyApp
MyApp/Changes
MyApp/lib
MyApp/lib/MyApp.pm
MyApp/LICENSE
MyApp/Makefile.PL
MyApp/MANIFEST.SKIP
MyApp/MANIFEST
MyApp/README
MyApp/server.pl
MyApp/share/templates
MyApp/share/templates/runmode1.html
MyApp/t
MyApp/t/00-signature.t
MyApp/t/01-load.t
MyApp/t/boilerplate.t
MyApp/t/test-app.t
MyApp/t/www
MyApp/t/www/PUT.STATIC.CONTENT.HERE
MyApp/xt
MyApp/xt/perlcriticrc
MyApp/xt/perl-critic.t
MyApp/xt/pod-coverage.t
MyApp/xt/pod.t

the way it just... generates an entire xt/ directory for you?? main character energy fr fr. πŸ’…

and here are the options, babes:

--module=module  Module name
--dir=dirname    Directory name to create new module in (optional)

--builder=module Build with 'ExtUtils::MakeMaker' or 'Module::Build'
--eumm           Same as --builder=ExtUtils::MakeMaker
--mb             Same as --builder=Module::Build
--mi             Same as --builder=Module::Install

--author=name    Author's name (required)
--email=email    Author's email (required)
--license=type   License under which the module will be distributed
                 (default is the same license as perl)

--verbose        Print progress messages while working
--force          Delete pre-existing files if needed

--help           Show this message

🫢 DESCRIPTION 🫢

so what it does is set up the skeleton of a CGI::Application-based project β€” that means a module, some templates, and some automated tests. yes, all three. she's thorough. πŸ‘‘

and by default? the skeleton files come from within a shared directory where Module::Starter::Plugin::CGIApp is stored. if you wanna know how that whole thing works, go peek at File::ShareDir. iykyk. πŸ’–


πŸŽ€ CONFIGURATION πŸŽ€

okay so plot twist: cgiapp-starter will look for a configuration file before reading its command line parameters. order matters, bestie.

the default location is:

$HOME/.module-starter/config

but if the MODULE_STARTER_DIR environment variable is set, then cgiapp-starter will look for config in that directory instead. sneaky. πŸ™ˆ

now, the config file itself is literally just a list of names and values, separated by colons. and any value that takes a list? that's just space separated. no drama, no fuss.

a sample configuration file might read:

author: Jaldhar H. Vyas
email: jaldhar@braincells.com
template_dir: ~/.module-starter/cgiapp/templates
colors: red green blue
πŸ’€ heads up: this format may become more elaborate in the future. but a file of this type should remain valid. so like, don't panic, your config is safe. probably. ✨

okay that's the whole page, bestie!! go forth and scaffold. πŸŒˆβ­πŸ’œ


this was CGIAPP-STARTER(1) β€” part of the User Contributed Perl Documentation, brought to you by perl v5.42.0, dated 2025-07-25. tysm for reading, love u, bye!! πŸŽ€πŸ’–πŸ¦‹πŸŒΈπŸ’…πŸ«Ά

πŸ“¦ where this page comes from