#!/usr/bin/perl
use Term::ReadLine;


$model = `tw_cli show | grep ^c.* | awk {'print \$2'}`;
chomp $model;


$term = new Term::ReadLine '3ware readline cli';
&prompt;
$OUT = $term->OUT || STDOUT;

while ( defined ($_ = $term->readline($prompt)) ) {
	chomp $_;
	if (/^(up|cd)$/) {
		$path = '';
		&prompt;
	} elsif ($_ eq '') {
		print "you need to enter a command, try 'help'\n";
	} elsif (/cd.*/i) {
		s/cd //;
		if ( /^\/.*/ ) {
			$path = $_;
			&prompt
		} elsif (/^\.\.$/) {
			@split = split "\/", $path;
			$fail = pop(@split);
			$newpath = join "\/", @split;
			$path = $newpath;
			&prompt
		} elsif (! /^\/.*/) {
			$path = $path."/".$_;
			&prompt
		} else {
			$path = $path.$_;
			&prompt
		}
	} elsif (/^(ls|cards)$/) {
		$cmd = `tw_cli show`;
		print $cmd;
	} elsif (/^(exit|quit)$/) {
		print "thanks for playing tw_cli!\n";
		exit;
	} else {
		$cmd = `tw_cli $path $_`;
		printf $cmd;
	}

#	$res = `tw_cli $_`;
#	warn $@ if $@;
#	print $OUT $res, "\n" unless $@;
#	$term->addhistory($_) if /\S/;
}

sub prompt {
		$prompt = $model;
		$prompt .= "@";
		$prompt .= $path."> ";
}
