CGIAPP-STARTER(1p)

πŸ“¦
version 0.44 Β· 2 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble

✨ 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