#!/usr/bin/perl

#Creates a gadget using the Skeleton gadget
#You MUST be on the gadgets directory

my $TEMPLATE = "Skeleton";

if($#ARGV < 0 ){
	print "Use: $0 <Gadget Name>\n";
	exit;
}

my $GADGET = $ARGV[0];
my $TEMPLATE_PATH = "$GADGET/templates";
my $LANGUAGE_PATH = "$GADGET/languages";

print "Creating Gadget Files ".`cp -rp $TEMPLATE $GADGET`;

my @files = get_files($GADGET);
my @template_files = get_files($TEMPLATE_PATH);
my @language_files = get_files($LANGUAGE_PATH);

print "Renaming Template\n";
rename_gadget($GADGET, @files);
rename_gadget($TEMPLATE_PATH, @template_files);
rename_gadget($LANGUAGE_PATH, @language_files);

#Get only files not directories

sub get_files {
	my $DIR = shift;
	print "----- Opening directory: $DIR\n";
	opendir(DIR, $DIR) || die "can't opendir $DIR: $!";
	my @files = grep { !-d "$DIR/$_" } readdir(DIR);
	closedir DIR;
	return @files;
}

sub rename_gadget {
	my $dir = shift;
	my @files = @_;
	my @pwent = getpwnam(getlogin());
	my $UCTEMPLATE = uc($TEMPLATE);
	my $UCGADGET = uc($GADGET);
	foreach my $file (@files){
		print "Changing $file "."sed -e s/$TEMPLATE/$GADGET/g $dir/$file\n";
		print `sed -i -e s/$TEMPLATE/$GADGET/g $dir/$file`."\n";
		print `sed -i -e s/$UCTEMPLATE/$UCGADGET/g $dir/$file`."\n";
		print "sed -i -e 's/\@author .*/\@author     $pwent[6]/g' $dir/$file"."\n";
		print `sed -i -e 's/\@author .*/\@author     $pwent[6]/g' $dir/$file`."\n";
	}
}
