5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
23 # ident "%Z%%M% %I% %E% SMI"
25 # Copyright 2007 Sun Microsystems, Inc. All rights reserved.
26 # Use is subject to license terms.
30 # listsvcs [-e] profile ...
32 # List all service instances in an SMF profile.
34 # -e List enabled instances only
42 my $servicename; # name attribute of the enclosing service element
43 my @svcs = (); # services list under construction
45 if (!getopts
("e", \
%opts)) {
46 die "Usage: $0 [-e] profile ...\n";
48 my $list_all = !$opts{e
};
50 my $parser = new XML
::Parser
;
51 $parser->setHandlers(Start
=> \
&start_handler
, End
=> \
&end_handler
);
53 for my $file (@ARGV) {
54 $parser->parsefile($file);
56 print join("\n", sort(@svcs)), "\n";
60 my ($p, $el, %attrs) = @_;
63 return unless ($attrs{"name"});
64 $name = $attrs{"name"};
66 if ($el eq "service") {
68 } elsif ($el eq "instance" && defined $servicename) {
69 push(@svcs, "$servicename:$name")
70 if ($list_all || $attrs{"enabled"} eq "true");
78 if ($el eq "service") {