summaryrefslogtreecommitdiff
path: root/pinyadmin/sbin/pinyconfig
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/pinyconfig
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/pinyconfig')
-rwxr-xr-xpinyadmin/sbin/pinyconfig38
1 files changed, 38 insertions, 0 deletions
diff --git a/pinyadmin/sbin/pinyconfig b/pinyadmin/sbin/pinyconfig
new file mode 100755
index 0000000..f6752db
--- /dev/null
+++ b/pinyadmin/sbin/pinyconfig
@@ -0,0 +1,38 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Piny;
+
+my ( $reponame, $attr, $value ) = @ARGV;
+
+if ( not defined $reponame or not defined $attr ) {
+ die "Usage: $0 reponame tweakable [value]\n";
+};
+
+$attr = lc $attr;
+$attr =~ s/\./_/g;
+
+my $repo = Piny::Repo->new( $reponame );
+
+if ( defined $value ) {
+ undef $@;
+ eval {
+ $repo->config->$attr( $value );
+ };
+ if ( $@ ) {
+ print STDERR "$attr is not a legal tweakable, or $value is not a legal value for that tweakable.\n$@\n";
+ };
+ if ( $value ne $repo->config->$attr ) {
+ print STDERR "Failed to set $attr (perhaps an override is in place)\n";
+ };
+};
+
+undef $@;
+eval {
+ print "$attr = " . $repo->config->$attr . "\n";
+};
+if ( $@ ) {
+ print STDERR "$attr is not a legal tweakable, or its current value is illegal.\n$@\n";
+};