CGIAPP-STARTER(1p)
β¨ NAME β¨
okay so bestie, welcome to cgiapp-starter π β it's the little generator that spins up a whole skeleton CGI::Application project for you. no cap, it does the boring scaffolding so you don't have to. this page lives in the user-contributed Perl docs, section 1p, and it's giving "let me set up your whole repo while you sip your matcha" π
πΈ SYNOPSIS πΈ
run it like this, periodt:
cgiapp-starter --module=MyApp --author="Jaldhar H. Vyas" --email=jaldhar@braincells.com
and then boom π₯ β the result is literally all of this:
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
likeβ¦ a whole project structure just appeared. main character energy fr fr π
π Options π
here's the full menu, no skips, no cuts:
--module=moduleβ the module name, babe. that's the whole vibe.--dir=dirnameβ the directory name to create the new module in. it's optional, so you can ghost it if you want.--builder=moduleβ build with'ExtUtils::MakeMaker'or'Module::Build'. pick your fighter.--eummβ same as--builder=ExtUtils::MakeMaker. a lil shortcut, we love convenience.--mbβ same as--builder=Module::Build. another shortcut bestie π«Ά--miβ same as--builder=Module::Install. yes, a third one. iconic.--author=nameβ the author's name. required, so don't forget it π--email=emailβ the author's email. also required. both of these are non-negotiable.--license=typeβ the license the module gets distributed under. the default is the same license as perl, iykyk.--verboseβ prints progress messages while it's working, so you can watch the magic happen β¨--forceβ deletes pre-existing files if it needs to. yes it deletes them. be so serious when you use this one π--helpβ shows this message. the classic.
π DESCRIPTION π
it sets up the skeleton of a CGI::Application-based project, and that means: a module, some templates, and some automated tests. the whole starter pack π
by default, those skeleton files come from inside a shared directory where Module::Starter::Plugin::CGIApp is stored. if you're curious how that whole thing works, go look at File::ShareDir β it explains the mechanics π«
π§ CONFIGURATION π§
plot twist: cgiapp-starter looks for a configuration file before it even reads its command line parameters. so config first, CLI second. the default location is:
$HOME/.module-starter/config
but if the MODULE_STARTER_DIR environment variable is set, then cgiapp-starter goes looking for "config" inside that directory instead. lowkey flexible.
the configuration file is just a list of names and values, separated by colons. anything that takes a list is just space separated. a sample config file might read like this:
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 your config isn't going to break on you, promise π«Ά
β bye bestie β
this whole thing came to you via perl v5.32.1, dated 2022-01-30 β so yeah, that's the version and the date, mwah π go build something cute, you've got this π
π¦ where this page comes from
- debian bookworm: libmodule-starter-plugin-cgiapp-perl 0.44-1.1 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- debian trixie: libmodule-starter-plugin-cgiapp-perl 0.44-1.1 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- ubuntu jammy: libmodule-starter-plugin-cgiapp-perl 0.44-1.1 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- ubuntu noble: libmodule-starter-plugin-cgiapp-perl 0.44-1.1 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms