#!/usr/bin/perl use strict; use warnings; use Moose::Util::TypeConstraints qw( find_type_constraint ); use Piny; my ( $name ) = @ARGV; if ( not defined $name ) { print "Usage: newrepo REPONAME\n"; exit 1; }; if ( not find_type_constraint( "Reponame" )->check( $name ) ) { print "That is not a valid repo name; must be at least 1 character long, begin with a lowercase alphanumeric character, and contain only alphanumeric characters and dashes.\n"; exit 1; }; my $description; while( 1 ) { print "Provide a one-line description to be used in repo listings, the shorter the better:\n"; chomp( $description = ); if ( not find_type_constraint( "SimpleText" )->check( $description ) ) { print "Must be 1-80 characters long; control characters (including tab) not allowed.\n"; next; }; print "Okay! Working, please wait...\n"; last; }; my $repo = Piny::Repo->create( $name, $description ); print "Repo URL: " . $repo->ikiwiki_url . "\n";