Writing command line tools made easy

Berlin.pm, Bicycle.pm

30 minutes

Intermediate

English 

How to write command line tools with a good user experience

Write a specification and get nested subcommands, option and parameter specification and validation, help, documentation, and advanced shell tab completion.


Good commandline tools
* give good usage error messages
* have good usage output
* have useful shell tab completion
* have good man pages

Your CLI framework should do that work for you, and you should not have to write duplicate code/pod.

I'll show a framework that tries to implement all these things, and some examples to demonstrate how advanced completion can make the life of your users much easier. 

[ Abstract - Talk ]

Attended by:
Jose Luis Perez Diez (‎jluis‎)
Martin Kjeldsen (‎baest‎)
Sweth Chandramouli
Stephen Hall (‎predix‎)
Albert Hilazo
Eric de Hont
Manfred Heumann (‎confuseAcat‎)
Alba Ferrer (‎alba‎)
Dagfinn Ilmari Mannsåker (‎ilmari‎)
Andrey Mikhaylenko (‎neithere‎)
Iaroslav Poliakov
Victor Nițu (‎nightsh‎)
Choroba
mirod
Daniel Brunkhorst
José Joaquín Atria (‎JJ‎)
Diego Kuperman (‎diegok‎)
Jason Clifford
Marco Pessotto (‎melmothx‎)
R Geoffrey Avery (‎rGeoffrey‎)
Attila-Mihaly Balazs (‎Grey Panther‎)
steve mynott (‎itz‎)
Thomas Klausner (‎domm‎)
Aaron Crane (‎arc‎)
Mickey Nasriachi (‎Mickey‎)
Dave Cross (‎davorg‎)
Paul Cochrane (‎ptc‎)
Lee Johnson
Mark Nettlingham
Jorge Soares
Martin Steinbach
Mark Stringer (‎mullet‎)
Andreas Holzner
Anne Thorniley
benjamin tietze
Sori Salca (‎Sori‎)
Sandra Schuhmacher (‎yulivee‎)
Jan Seidl (‎JaSei‎)
Andrew Beech
Artur Khabibullin
Mallory van Achterberg (‎Stomme poes‎)
Ionel Mihai-Cimpan
Wolfgang Pecho
Eitan Schuler
Jussi Kinnula (‎Spot‎)
Laurent Rosenfeld (‎lolo78‎)
Moldvai Edina
Petar Rastovac (‎Peca‎)
Cristina Mavriche
Peter Kainrad
Heinz Knutzen
Dmitry Karasik (‎McFist‎)
Snorri Briem
Rikus Goodell
Porumb Mihaela
Silviu Magurean
Andrew Nugged (nugged)
Ioana Falcusan
Dumitriu Sebastian
Andreea Hosu
Todd Rinaldo (‎toddr‎)
Adrian Matei
Gonzalo Diethelm (‎gonzo‎)
Ilya Chesnokov (‎ichesnokov‎)
Phil King
Michael Lush
Anatoliy Dmytriyev (‎tolid‎)
Alex Muntada (‎alexm‎)
Jean-Baptiste Mazon
Lance Wicks
geira
Leo Grapendaal
Fulvio Scapin (‎trantorvega‎)