Pinto:...ckStart(3pm)
β¨ NAME β¨
Pinto::Manual::QuickStart β bestie, it's literally a condensed summary of Pinto π
This is the Pinto:...ckStart(3pm) page from the User Contributed Perl Documentation, and it's your lil cheat sheet, your sparknotes, your group-chat recap of everything Pinto can do. No cap.
πΈ VERSION πΈ
version 0.14 β yeah she's got a version number and she's proud of it π
π INSTALLING PINTO π
okay so first things first, you gotta get Pinto on your machine. Copy-paste era:
curl -L http://getpinto.stratopan.com | bash
source ~/opt/local/pinto/etc/bashrc
that second line? that's the source of the bashrc so your shell knows what's up. don't skip her π«Ά
π CREATING A REPOSITORY π
time to make a repo, the moment we've all been waiting for β¨
# A new repository with default stack named "master"
pinto -r /repo/dir init
pinto init /repo/dir
# A new repository with default stack named "dev"
pinto -r /repo/dir init --stack dev
not me giving you two ways to say the same thing β -r /repo/dir or just plopping the path right after init. both iconic, both valid π
and yes, you can name your default stack whatever. the default default is master, but dev is right there if you're feeling spicy π₯
π¦ BROWSING A REPOSITORY π¦
vibe check: what's actually in here?
# See all packages in the default stack
pinto -r /repo/dir list
# See all packages in the default stack matching m/Foo::Bar/i
pinto -r /repo/dir list -P Foo::Bar
# See all packages in the default stack by author "JOE"
pinto -r /repo/dir list -A JOE
# See all packages in the "dev" stack
pinto -r /repo/dir list --stack dev
pinto -r /repo/dir list dev
so -P filters by a pattern, and it's a case-insensitive regex match, m/Foo::Bar/i, periodt. -A filters by author, shoutout JOE. and to peek a specific stack you can do --stack dev or just toss dev on the end like it's nothing π
π PULLING UPSTREAM DISTRIBUTIONS π
pulling = grabbing stuff from upstream and bringing it home π«Ά
# Pull any version of Foo::Bar
pinto -r /repo/dir pull Foo::Bar
# Pull version 2.4 or newer of Foo::Bar
pinto -r /repo/dir pull Foo~2.4
# Pull exactly version 2.4 of Foo::Bar
pinto -r /repo/dir pull Foo==2.4
# Pull a specific distribution
pinto -r /repo/dir pull AUTHOR/Foo-Bar-1.9.tar.gz
# Pull and pin at the same time
pinto -r /repo/dir pull --pin Foo::Bar~2.4
# Pull many packages or distributions
pinto -r /repo/dir pull Foo::Bar Baz::Qux ...
pinto -r /repo/dir pull < LIST_OF_PACKAGES
# Pull everything for a Dist::Zilla project
dzil listdeps | pinto -r /repo/dir pull
# Pull onto the "dev" stack
pinto -r /repo/dir pull --stack dev Foo::Bar
okay the tilde and the double-equals are the whole thing, listen:
Foo~2.4= version2.4or newer, she's flexible, she's chill πFoo==2.4= exactly2.4, no negotiations, no substitutions, periodt π
and you can pull a whole distribution by naming it like AUTHOR/Foo-Bar-1.9.tar.gz, or pull a whole lil lineup at once, or pipe a list in with < LIST_OF_PACKAGES, or pipe dzil listdeps straight through for your Dist::Zilla project. obsessed with the flexibility fr fr β¨
--pin does the pulling and the pinning at the same time because why do two trips πΈ and --stack dev sends it to a different stack, main character energy.
π ADDING LOCAL DISTRIBUTIONS π
when the dist lives on your machine, not upstream π
# Add a local dist to the default stack
pinto -r /repo/dir add My-Dist-1.0.tar.gz
# Assign to a different author
pinto -r /repo/dir add --author SHAKESPEARE My-Dist-1.0.tar.gz
# Add and pin at the same time
pinto -r /repo/dir add --pin My-Dist-1.0.tar.gz
# Add to the "dev" stack
pinto -r /repo/dir add --stack dev My-Dist-1.0.tar.gz
--author SHAKESPEARE to assign it to somebody else (yes, that Shakespeare, be whoever you wanna be π), --pin to add and pin in one go, --stack dev to yeet it into the dev stack instead.
π INSTALLING THINGS π
the payoff, the moment, the slay π
# Install from the default stack using cpanm
cpanm --mirror file:///repo/dir --mirror-only Foo::Bar
# Install from the "dev" stack using cpanm
cpanm --mirror file:///repo/dir/stacks/dev --mirror-only Foo::Bar
# Install from the default stack using pinto
pinto -r /repo/dir install Foo::Bar
# Install from the "dev" stack using pinto
pinto -r /repo/dir --stack dev install Foo::Bar
# Install and populate the repository with missing prereqs
pinto -r /repo/dir install --do-pull Foo::Bar
notice how cpanm points at file:///repo/dir with --mirror and --mirror-only β that's the repo as a local mirror, no cap. want the dev stack instead? the path literally becomes file:///repo/dir/stacks/dev π¦
and --do-pull = install and go populate the repository with any missing prereqs while you're at it. multitasking queen π
also peep the flag placement on that pinto one: --stack dev goes before install. she's particular, respect her π
π MANAGING STACKS π
stacks are your whole personality here, so let's manage them π
# Create an empty stack named "qa"
pinto -r /repo/dir new qa
# Create a stack by copying "dev" to "qa"
pinto -r /repo/dir copy dev qa
# Delete the dev stack
pinto -r /repo/dir kill dev
# Rename the "dev" stack to "prod"
pinto -r /repo/dir rename dev prod
# Mark the "qa" stack as the default
pinto -r /repo/dir default qa
# Show config properties of the default stack
pinto -r /repo/dir props
# Set config properties of the default stack
pinto -r /repo/dir props --property NAME=VALUE
# Show all the existing stacks
pinto -r /repo/dir stacks
new makes an empty one, copy clones one into another, kill deletes (rip dev π), rename renames, default crowns a new default. props shows config properties of the default stack, and props --property NAME=VALUE sets them. stacks lists every stack you've got. so much lore π
π§ USING PINS π§
pins hold a package at a version so it doesn't wander off π«Ά
# Pin a package on the default stack
pinto -r /repo/dir pin Foo::Bar
# Pin a package on the "dev" stack
pinto -r /repo/dir pin --stack dev Foo::Bar
# Pin a distribution
pinto -r /repo/dir pin AUTHOR/Foo-Bar-1.0.tar.gz
# Unpin a package from the default stack
pinto -r /repo/dir unpin Fo::Bar
# Unpin a package from the "dev" stack
pinto -r /repo/dir unpin --stack dev Foo::Bar
# Unpin a distribution
pinto -r /repo/dir unpin AUTHOR/Foo-Bar-1.0.tar.gz
you can pin a package or a distribution, and --stack picks which stack gets the treatment. unpin undoes it. (and yeah, that first unpin example really does say Fo::Bar β one o, we love a typo moment, don't @ me π copy it exactly as she is, bestie.)
π VERSION CONTROL π
your repo's whole memory, the receipts, the lore π
# View commit messages for the default stack
pinto -r /repo/dir log
# View commit messages for the "dev" stack
pinto -r /repo/dir log dev
# Compare the heads of the default and "qa" stacks
pinto -r /repo/dir diff qa
# Compare the heads of the "dev" and "qa" stacks
pinto -r /repo/dir diff dev qa
# Merge "dev" stack into the "qa" stack (fast-forward only)
pinto -r /repo/dir merge dev qa
log = read the commit messages. diff = compare the heads of two stacks. merge = merge one stack into another β and heads up, it's fast-forward only. no fancy merge commits here, she's strict and she's not sorry β
π MISCELLANY π
the little extras, the side quests, the health check β¨
# Report missing distribution archives
pinto -r /repo/dir verify
# Report repo statistics
pinto -r /repo/dir stats
# Remove orphan files and tune the database
pinto -r /repo/dir clean
# Report top-level distributions of the default stack
pinto -r /repo/dir roots
verify tells you about missing distribution archives, stats gives you repo statistics, clean removes orphan files and tunes the database (self-care fr), and roots reports the top-level distributions of the default stack πΈ
π₯ GETTING MORE HELP π₯
lost? same. but it's fine, she has layers π«Ά
# Show a list of pinto commands
pinto commands
# Show a brief summary of a COMMAND
pinto help COMMAND
# Show the manual for a COMMAND
pinto manual COMMAND
pinto commands = the full lineup. pinto help COMMAND = the quick lil summary. pinto manual COMMAND = the whole entire manual, the director's cut π¬
π SEE ALSO π
go deeper, bestie, there's a whole cinematic universe:
Pinto::Manual::TutorialPinto::Manual::InstallingPinto(the library)pinto(the command)
iykyk π
π AUTHOR π
Jeffrey Ryan Thalhammer <jeff@stratopan.com>
the icon, the legend, the one who built the thing π
π COPYRIGHT AND LICENSE π
This software is copyright (c) 2015 by Jeffrey Ryan Thalhammer.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
so yeah β free software, same terms as Perl 5 itself. share her, remix her, she's for the people π«Ά
and that's the whole page, bestie β¨ perl v5.40.1 on the side, dated 2025-04-21, from Pinto:...ckStart(3pm) in the User Contributed Perl Documentation. go build something iconic with it π
ππ
π¦ where this page comes from
- debian trixie: pinto 0.14000-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: pinto 0.14000-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms