summaryrefslogtreecommitdiff
path: root/pinyadmin/sbin/newrepo
diff options
context:
space:
mode:
authorJoe Rayhawk <jrayhawk@richardiv.omgwallhack.org>2010-10-30 07:31:35 -0700
committerJoe Rayhawk <jrayhawk@richardiv.omgwallhack.org>2010-10-30 07:31:35 -0700
commitc952a7e6d5e66e2ecd653bb5c177609b59619808 (patch)
treed2be5d0dee505ae00c4b85a5f4129efc2456d5f6 /pinyadmin/sbin/newrepo
parentd03e1eb495c79c19dc70bbe8eab81eadce98210a (diff)
parent79c284badd015f88d8fd42d941e30bca70dd4eb9 (diff)
downloadpiny-code-c952a7e6d5e66e2ecd653bb5c177609b59619808.tar.gz
piny-code-c952a7e6d5e66e2ecd653bb5c177609b59619808.zip
Merge branch 'master' of piny.be:/srv/git/piny-code
Diffstat (limited to 'pinyadmin/sbin/newrepo')
-rwxr-xr-xpinyadmin/sbin/newrepo40
1 files changed, 40 insertions, 0 deletions
diff --git a/pinyadmin/sbin/newrepo b/pinyadmin/sbin/newrepo
new file mode 100755
index 0000000..a178ecb
--- /dev/null
+++ b/pinyadmin/sbin/newrepo
@@ -0,0 +1,40 @@
+#!/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 = <STDIN> );
+
+ 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";