#!/usr/bin/perl
#Copyright (c) 2009, Zane C. Bowers
#All rights reserved.
#
#Redistribution and use in source and binary forms, with or without modification,
#are permitted provided that the following conditions are met:
#
#   * Redistributions of source code must retain the above copyright notice,
#    this list of conditions and the following disclaimer.
#   * Redistributions in binary form must reproduce the above copyright notice,
#    this list of conditions and the following disclaimer in the documentation
#    and/or other materials provided with the distribution.
#
#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
#ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
#IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
#INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
#LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
#THE POSSIBILITY OF SUCH DAMAGE.

use strict;
use warnings;
use strict;
use warnings;
use Getopt::Std;
use ZConf::GUI;

$Getopt::Std::STANDARD_HELP_VERSION = 1;

#version function
sub main::VERSION_MESSAGE {
	print "zcgui-set 0.0.0\n";
}

#print help
sub main::HELP_MESSAGE {
	print "\n".
	      "-s <set>  The ZConf set to us.e\n".
	      "-m <module>  The module to set the prefernces for.\n".
	      "-p <prefence string>  The preferences.\n";
}

#gets the options
my %opts=();
getopts('s:m:p:', \%opts);

if (!defined($opts{m})) {
	warn('zcgui-set: No module specified via -m');
	exit 254;
}

if (!defined($opts{p})) {
	warn('zcgui-set: No preferences specified via -p');
	exit 254;
}

my $zg=ZConf::GUI->new({set=>$opts{s}});
if ($zg->{error}) {
	exit $zg->{error};
}

my @prefs=split(/:/, $opts{p});

$zg->setPreferred($opts{m}, \@prefs);
if ($zg->{error}) {
	exit $zg->{error};
}
