From ebeeebf2d2f0489efa102fb05a5fe880e6e75056 Mon Sep 17 00:00:00 2001 From: Mark Buechler Date: Tue, 3 Aug 2010 16:15:50 +0000 Subject: [PATCH] - Fix list_group. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1918 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scstadmin/scstadmin.sysfs/scstadmin | 40 +++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/scstadmin/scstadmin.sysfs/scstadmin b/scstadmin/scstadmin.sysfs/scstadmin index 4bb89e66e..5ccfe0f32 100755 --- a/scstadmin/scstadmin.sysfs/scstadmin +++ b/scstadmin/scstadmin.sysfs/scstadmin @@ -1921,7 +1921,7 @@ sub listTargets { my $target = shift; my %toprint; - return listGroups(undef, $driver, $target) if ($target && $driver); + return listGroups($driver, $target, undef) if ($target && $driver); my $got_driver = defined($driver); @@ -1929,11 +1929,13 @@ sub listTargets { my $l_driver; my $l_target; + foreach my $_driver (@{$drivers}) { $driver = $_driver if (!$got_driver); if ($driver eq $_driver) { $toprint{$driver}++; + $l_driver = length($driver) if ($l_driver < length($driver)); my $targets = $SCST->targets($driver); @@ -2045,20 +2047,36 @@ sub listGroups { return listGroup($driver, $target, $group); } + my $got_group = $group; + my $got_target = $target; + my $got_driver = $driver; + my $drivers = $SCST->drivers(); - foreach my $driver (@{$drivers}) { - my $targets = $SCST->targets($driver); - foreach my $target (@{$targets}) { - my $groups = $SCST->groups($driver, $target); - foreach my $group (@{$groups}) { - print "Driver: $driver\n"; - print "Target: $target\n"; - print "Group : $group\n\n"; + foreach my $_driver (@{$drivers}) { + $driver = $_driver if (!$got_driver); - listGroup($driver, $target, $group); + if ($driver eq $_driver) { + my $targets = $SCST->targets($driver); + foreach my $_target (@{$targets}) { + $target = $_target if (!$got_target); - print "\n\n"; + if ($target eq $_target) { + my $groups = $SCST->groups($driver, $target); + foreach my $_group (@{$groups}) { + $group = $_group if (!$got_group); + + if ($group eq $_group) { + print "Driver: $driver\n"; + print "Target: $target\n"; + print "Group : $group\n\n"; + + listGroup($driver, $target, $group); + + print "\n\n"; + } + } + } } } }