summaryrefslogtreecommitdiff
path: root/pinyadmin/sbin/newrepo
diff options
context:
space:
mode:
authorBryan Bishop <kanzure@gmail.com>2010-10-29 19:46:24 -0500
committerBryan Bishop <kanzure@gmail.com>2010-10-29 19:46:24 -0500
commit7786ce2a332b0eba4b3ca7c57f906a32e8715da3 (patch)
tree5a9fe32b69a93f41ae2ac82a50788fe50c0d86fb /pinyadmin/sbin/newrepo
parent413373be9ab30eb21b564cdc180cb2dcda77bfeb (diff)
downloadpiny-code-7786ce2a332b0eba4b3ca7c57f906a32e8715da3.tar.gz
piny-code-7786ce2a332b0eba4b3ca7c57f906a32e8715da3.zip
Starting repo cleanup to make this not so awful
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";