patches/system-tools-backends-02-common.diff
author padraigo
Mon, 10 Apr 2006 15:59:20 +0000
changeset 7035 3cfd68e4e41f
parent 6962 5191ee8f6ea3
child 7085 677b18c80bd7
permissions -rw-r--r--
2006-04-10 Padraig O'Briain <[email protected]> * gnome-system-tools.spec: Add define USE_AUTHEN_PAM for Solaris. * patches/gnome-system-tools-07-users.diff: Update to not encrypt password if USE_AUTHEN_PAM is defined. * patches/system-tools-backends-02-common.diff: Update patch to suppress writing line containing password in debug output in gst_debug_print_to_file in debug.pl. * patches/system-tools-backends-08-users.diff: Update patch to use Authen::PAM to change passwords on Solaris.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6955
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
     1
diff -ru /var/tmp/clean/system-tools-backends-1.4.2/file.pl.in system-tools-backends-1.4.2/file.pl.in
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
     2
--- /var/tmp/clean/system-tools-backends-1.4.2/file.pl.in	2005-11-04 15:49:36.000000000 +0000
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
     3
+++ system-tools-backends-1.4.2/file.pl.in	2006-03-13 10:14:56.141636000 +0000
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
     4
@@ -772,6 +772,14 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
     5
   }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
     6
 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
     7
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
     8
+sub gst_file_read_joined_lines
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
     9
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    10
+  my ($file) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    11
+  my $buffer = &gst_file_buffer_load ($file);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    12
+  &gst_file_buffer_join_lines ($buffer);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    13
+  $$buffer[0] =~ s/\n//; $$buffer[0] =~ s/\\//;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    14
+  return $$buffer[0];
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    15
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    16
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    17
 # --- Command-line utilities --- #
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    18
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    19
diff -ru /var/tmp/clean/system-tools-backends-1.4.2/partition.pl.in system-tools-backends-1.4.2/partition.pl.in
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    20
--- /var/tmp/clean/system-tools-backends-1.4.2/partition.pl.in	2004-11-05 17:03:26.000000000 +0000
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    21
+++ system-tools-backends-1.4.2/partition.pl.in	2006-03-13 10:14:56.152216000 +0000
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    22
@@ -86,6 +86,17 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    23
     },
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    24
 );
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    25
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    26
+sub gst_partition_scan_sunos_info
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    27
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    28
+  my ($fd, $line);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    29
+  my (%hash);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    30
+  my (@table);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    31
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    32
+  $hash{"partition"} = \@table;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    33
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    34
+  return \%hash;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    35
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    36
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    37
 sub gst_partition_scan_freebsd_info
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    38
 {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    39
   my ($fd, $line);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    40
@@ -192,6 +203,7 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    41
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    42
   return &gst_partition_scan_linux_info   if ($plat eq "Linux");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    43
   return &gst_partition_scan_freebsd_info if ($plat eq "FreeBSD");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    44
+  return &gst_partition_scan_sunos_info if ($plat eq "SunOS");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    45
 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    46
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    47
 %GST_FILESYS_TYPES =
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    48
diff -ru /var/tmp/clean/system-tools-backends-1.4.2/platform.pl.in system-tools-backends-1.4.2/platform.pl.in
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    49
--- /var/tmp/clean/system-tools-backends-1.4.2/platform.pl.in	2006-01-02 15:32:34.000000000 +0000
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    50
+++ system-tools-backends-1.4.2/platform.pl.in	2006-03-13 10:14:56.152576000 +0000
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    51
@@ -38,6 +38,8 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    52
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    53
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    54
 $PLATFORM_INFO = {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    55
+  "solaris-2.11"    => "Solaris Nevada / Open Solaris",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    56
+  "nexenta-1.0"     => "Nexenta GNU/Solaris 1.0 Ellate",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    57
   "debian-2.2"      => "Debian GNU/Linux 2.2 Potato",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    58
   "debian-3.0"      => "Debian GNU/Linux 3.0 Woody",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    59
   "debian-sarge"    => "Debian GNU/Linux Sarge",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    60
@@ -110,7 +112,8 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    61
       ("Debian" => "debian"),
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    62
       ("Mandrake" => "mandrake"),
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    63
       ("Conectiva" => "conectiva"),
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    64
-      ("Blackpanther" => "blackpanther");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    65
+      ("Blackpanther" => "blackpanther"),
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    66
+      ("gnu_solaris" => "nexenta");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    67
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    68
   # gst_prefix not required here: parse already does that for us.
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    69
   $dist = lc (&gst_parse_sh ("/etc/lsb-release", "DISTRIB_ID"));
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    70
@@ -528,9 +531,11 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    71
   chomp ($dist = <$fd>);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    72
   &gst_file_close ($fd);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    73
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    74
-  if ($dist =~ /^5\.(\d)/) { return "solaris-2.$1" }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    75
-  else { if ($dist =~ /^([78])\.\d/) { return "solaris-$1.0" } }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    76
-  return -1;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    77
+  if (-f "$gst_prefix/etc/debian_version") { return check_lsb() }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    78
+  else {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    79
+    if ($dist =~ /^5\.(\d+)/) { return "solaris-2.$1" } 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    80
+    else { return -1 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    81
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    82
 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    83
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    84
 sub gst_platform_get_system
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    85
diff -ru /var/tmp/clean/system-tools-backends-1.4.2/service.pl.in system-tools-backends-1.4.2/service.pl.in
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    86
--- /var/tmp/clean/system-tools-backends-1.4.2/service.pl.in	2006-01-02 15:42:19.000000000 +0000
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    87
+++ system-tools-backends-1.4.2/service.pl.in	2006-03-13 10:14:56.155005000 +0000
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    88
@@ -85,6 +85,9 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    89
        "ubuntu-5.10"  => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"],
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    90
        "ubuntu-6.04"  => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"],
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    91
        
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    92
+       "nexenta-1.0" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"],       
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    93
+       "solaris-2.11" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"],       
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    94
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    95
        "suse-7.0"     => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d", "../"],
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    96
        "suse-9.0"     => ["$gst_prefix/etc/init.d", "$gst_prefix/etc/init.d", "../"],
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    97
        "suse-9.1"     => ["$gst_prefix/etc/init.d", "$gst_prefix/etc/init.d", "../"],
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    98
@@ -154,6 +157,9 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
    99
        "ubuntu-5.04"    => [2, 3],
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   100
        "ubuntu-5.10"    => [2, 3],
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   101
        "ubuntu-6.04"    => [2, 3],
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   102
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   103
+       "nexenta-1.0"   => [2, 3],       
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   104
+       "solaris-2.11"  => [2, 3],       
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   105
        
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   106
        "suse-7.0"       => [3, 5],
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   107
        "suse-9.0"       => [3, 5],
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   108
@@ -223,6 +229,10 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   109
      "ubuntu-5.04"    => "debian-2.2",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   110
      "ubuntu-5.10"    => "debian-2.2",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   111
      "ubuntu-6.04"    => "debian-2.2",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   112
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   113
+     "nexenta-1.0"   => "nexenta",     
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   114
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   115
+     "solaris-2.11"   => "solaris",     
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   116
           
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   117
      "suse-7.0"       => "redhat-5.2",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   118
      "suse-9.0"       => "redhat-5.2",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   119
@@ -277,6 +287,14 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   120
                       "default"   => "GRAPHICAL",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   121
                       "nonetwork" => "RECOVER"
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   122
                      },
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   123
+     "nexenta"    => {"single-user"  => "TEXT",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   124
+                      "multi-user"   => "GRAPHICAL",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   125
+                      "none"         => "RECOVER"
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   126
+                     },
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   127
+     "solaris"    => {"single-user"  => "TEXT",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   128
+                      "multi-user"   => "GRAPHICAL",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   129
+                      "none"         => "RECOVER"
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   130
+                     },
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   131
      "freebsd-5"  => {"rc" => "GRAPHICAL" },
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   132
      "slackware-9.1.0" => {"4" => "GRAPHICAL" }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   133
     );
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   134
@@ -797,6 +815,152 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   135
   return \%ret;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   136
 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   137
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   138
+sub gst_service_smf_service_exist
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   139
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   140
+  my($service) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   141
+  my($services) = &gst_service_smf_get_services_list();
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   142
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   143
+  foreach $i (@$services)
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   144
+  {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   145
+    return 1 if ($i =~ /$service/);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   146
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   147
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   148
+  return 0;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   149
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   150
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   151
+sub gst_service_smf_run_svcadm
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   152
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   153
+  my ($service, $arg) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   154
+  my ($option);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   155
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   156
+  my %map =
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   157
+    ("stop" => "stopped",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   158
+     "start" => "started"
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   159
+    );
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   160
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   161
+  my %op =
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   162
+    ("stop" => "disable",
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   163
+     "start" => "enable"
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   164
+    );
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   165
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   166
+  &gst_report_enter ();
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   167
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   168
+  if (!exists $map{$arg})
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   169
+  {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   170
+    &gst_report ("service_sysv_op_unk", $arg);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   171
+    &gst_report_leave ();
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   172
+    return -1;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   173
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   174
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   175
+  if (&gst_service_smf_service_exist ($service))
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   176
+  {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   177
+    if (!&gst_file_run ("svcadm $op{$arg} $service"))
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   178
+    {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   179
+      &gst_report ("service_sysv_op_success", $service, $str);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   180
+      &gst_report_leave ();
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   181
+      return 0;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   182
+    }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   183
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   184
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   185
+  &gst_report ("service_sysv_op_failed", $service, $str);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   186
+  &gst_report_leave ();
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   187
+  return -1;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   188
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   189
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   190
+sub gst_service_smf_runlevel_status_by_service
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   191
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   192
+  my ($service, $status) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   193
+  my (@arr, @ret);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   194
+  my (@runlevels) = split(" ","single-user multi-user");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   195
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   196
+  foreach $runlevel (@runlevels)
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   197
+  {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   198
+    if ($status)
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   199
+    {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   200
+      push @arr, { "name"   => $runlevel,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   201
+                   "action" => "start" };
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   202
+    }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   203
+    else
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   204
+    {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   205
+      push @arr, { "name"   => $runlevel,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   206
+                   "action" => "stop" };
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   207
+    }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   208
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   209
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   210
+  push @ret, { "runlevel" => \@arr };
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   211
+  return @ret;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   212
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   213
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   214
+sub gst_service_smf_get_service_info
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   215
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   216
+  my ($service) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   217
+  my ($script, @actions, @runlevels);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   218
+  my %hash;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   219
+  my $role;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   220
+  my $status = 0;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   221
+  my $longname = "";
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   222
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   223
+  my $fd = &gst_file_run_pipe_read ("svcs -l $service");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   224
+  while (<$fd>) {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   225
+    $status = 1 if (/^state.*online/);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   226
+    $longname = $1 if (/^name\s*(.*)/);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   227
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   228
+  gst_file_close ($fd);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   229
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   230
+  my($runlevels) = &gst_service_smf_runlevel_status_by_service ($service, $status);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   231
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   232
+  $hash{"script"} = $service;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   233
+  $hash{"longname"} = $longname if ($longname);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   234
+  $hash{"runlevels"} = $runlevels unless ($runlevels eq undef);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   235
+  $service =~ m/.*\/(.*)$/;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   236
+  $role = &gst_service_get_role ($1);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   237
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   238
+  if ($role eq "UNKNOWN") {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   239
+    $role = "SYSTEM" if ($service =~ /^system\// || $service =~ /^platform\//);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   240
+    $role = "NETWORK" if ($service =~ /^network\//);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   241
+    $role = "NTP_SERVER" if ($service =~ /^network\/ntp/);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   242
+    $role = "FILE_SERVER" if ($service =~ /^network\/nfs/);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   243
+    $role = "DYNAMIC_DNS" if ($service =~ /^network\/dns/);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   244
+    $role = "SYSTEM_LOGGER" if ($service =~ /^system\/system-log/);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   245
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   246
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   247
+  $hash{"role"} = $role;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   248
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   249
+  return \%hash;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   250
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   251
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   252
+sub gst_service_smf_get_services_list
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   253
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   254
+  my @list;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   255
+  local *SVCS=gst_file_run_pipe_read("svcs -a");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   256
+  while (<SVCS>) {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   257
+    next if (/svc:\/milestone/);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   258
+    if (/^.*\s*.*\s*svc:\/(.*):.*/) {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   259
+      push(@list,$1);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   260
+    }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   261
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   262
+  close (SVCS);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   263
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   264
+  return \@list;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   265
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   266
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   267
+sub gst_service_smf_get_services
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   268
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   269
+  my ($service);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   270
+  my (%ret);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   271
+  my ($service_list) = &gst_service_smf_get_services_list ();
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   272
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   273
+  foreach $service (@$service_list)
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   274
+  {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   275
+    my (%hash);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   276
+    $hash = &gst_service_smf_get_service_info ($service);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   277
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   278
+    $ret{$service} = $hash if ($hash ne undef);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   279
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   280
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   281
+  return \%ret;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   282
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   283
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   284
 # these functions get a list of the services that run on a gentoo init
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   285
 sub gst_service_gentoo_get_service_status
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   286
 {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   287
@@ -1163,6 +1327,10 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   288
   {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   289
     return "suse";
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   290
   }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   291
+  elsif ($gst_dist =~ /nexenta/ || $gst_dist =~ /solaris-2.11/)
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   292
+  {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   293
+    return "smf";
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   294
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   295
   else
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   296
   {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   297
     return "sysv";
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   298
@@ -1180,6 +1348,8 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   299
   return &gst_service_rcng_get_services ()   if ($type eq "rcng");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   300
   return &gst_service_suse_get_services ()   if ($type eq "suse");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   301
   return &gst_service_archlinux_get_services() if ($type eq "archlinux");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   302
+  return &gst_service_smf_get_services ()   if ($type eq "smf");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   303
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   304
   return undef;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   305
 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   306
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   307
@@ -1199,7 +1369,7 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   308
 {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   309
     my ($type) = &gst_get_init_type ();
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   310
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   311
-    return "default" if ($type eq "gentoo");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   312
+    return "default" if ($type eq "gentoo" || $type eq "smf");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   313
     return "rc"      if ($type eq "rcng");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   314
     return "rc"      if ($type eq "archlinux");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   315
     return &gst_service_sysv_get_default_runlevel ();
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   316
@@ -1585,6 +1755,7 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   317
   &gst_service_rcng_set_services   ($services, $runlevel) if ($type eq "rcng");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   318
   &gst_service_suse_set_services   ($services, $runlevel) if ($type eq "suse");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   319
   &gst_service_archlinux_set_services ($services, $runlevel) if ($type eq "archlinux");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   320
+  &gst_service_smf_set_services   ($services, $runlevel) if ($type eq "smf");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   321
 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   322
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   323
 sub gst_service_set_conf
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   324
@@ -1632,6 +1803,47 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   325
   return undef;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   326
 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   327
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   328
+sub gst_service_smf_set_services
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   329
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   330
+  my ($services, $runlevel) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   331
+  my ($action);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   332
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   333
+  foreach $service (@$services)
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   334
+  {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   335
+    $script = $$service{"script"};
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   336
+    $arr = $$service{"runlevels"}[0]{"runlevel"};
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   337
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   338
+    foreach $i (@$arr)
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   339
+    {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   340
+      $action = $$i{"action"};
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   341
+      $rl = $$i{"name"};
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   342
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   343
+      if ( $action eq "start")
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   344
+      {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   345
+        &gst_file_run ("rc-update add $script $rl");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   346
+      }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   347
+      elsif ($action eq "stop")
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   348
+      {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   349
+        &gst_file_run ("rc-update del $script $rl");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   350
+      }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   351
+    }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   352
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   353
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   354
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   355
+sub gst_service_smf_get_status
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   356
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   357
+  my ($service) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   358
+  my $ret = 0;
6962
5191ee8f6ea3 2006-03-20 Padraig O'Briain <[email protected]>
padraigo
parents: 6955
diff changeset
   359
+  my $fd = &gst_file_run_pipe_read ("svcs -H -ostate $service");
6955
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   360
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   361
+  while (<$fd>) {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   362
+    if (/^online/) { $ret = 1; last; }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   363
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   364
+  gst_file_close ($fd);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   365
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   366
+  return $ret;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   367
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   368
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   369
 sub gst_service_redhat_get_status
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   370
 {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   371
   my ($service) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   372
@@ -1697,6 +1909,9 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   373
        "ubuntu-5.04"  => \&gst_service_debian_get_status,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   374
        "ubuntu-5.10"  => \&gst_service_debian_get_status,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   375
        "ubuntu-6.04"  => \&gst_service_debian_get_status,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   376
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   377
+       "nexenta-1.0" => \&gst_service_smf_get_status,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   378
+       "solaris-2.11" => \&gst_service_smf_get_status,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   379
               
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   380
        "redhat-5.2"   => \&gst_service_redhat_get_status,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   381
        "redhat-6.0"   => \&gst_service_redhat_get_status,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   382
@@ -1909,6 +2124,7 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   383
        "rcng"    => \&gst_service_rcng_run_script,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   384
        "suse"    => \&gst_service_sysv_run_initd_script,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   385
        "archlinux" => \&gst_service_archlinux_run_script,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   386
+       "smf"    => \&gst_service_smf_run_svcadm,
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   387
       );
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   388
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   389
   $type = &gst_get_init_type ();
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   390
@@ -1964,6 +2180,14 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   391
   return 0;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   392
 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   393
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   394
+sub gst_service_smf_installed
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   395
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   396
+  my ($service) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   397
+
6962
5191ee8f6ea3 2006-03-20 Padraig O'Briain <[email protected]>
padraigo
parents: 6955
diff changeset
   398
+  return 1 if (! &gst_file_run("svcs -H -ostate $service"));
6955
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   399
+  return 0;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   400
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   401
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   402
 sub gst_service_installed
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   403
 {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   404
   my ($service) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   405
@@ -1975,6 +2199,8 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   406
   return &gst_service_gentoo_installed ($service) if ($type eq "gentoo");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   407
   return &gst_service_rcng_installed ($service) if ($type eq "rcng");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   408
   return &gst_service_rcng_installed ($service) if ($type eq "archlinux");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   409
+  return &gst_service_smf_installed ($service) if ($type eq "smf");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   410
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   411
   return 0;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   412
 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   413
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   414
@@ -2013,6 +2239,21 @@
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   415
   }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   416
 }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   417
 
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   418
+sub gst_service_smf_set_status
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   419
+{
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   420
+  my ($service, $active) = @_;
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   421
+  my (@arr);
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   422
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   423
+  if ($active)
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   424
+  {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   425
+    &gst_file_run ("svcadm enable $service");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   426
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   427
+  else
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   428
+  {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   429
+    &gst_file_run ("svcadm disable $service");
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   430
+  }
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   431
+}
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   432
+
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   433
 sub gst_service_gentoo_set_status
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   434
 {
fef846f62545 2006-03-16 Padraig O'Briain <[email protected]>
padraigo
parents:
diff changeset
   435
   my ($script, $force_now, $active) = @_;
7035
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   436
diff -ru /usr/tmp/clean/system-tools-backends-1.4.2/debug.pl.in system-tools-backends-1.4.2/debug.pl.in
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   437
--- /usr/tmp/clean/system-tools-backends-1.4.2/debug.pl.in	Sun Sep 14 22:51:49 2003
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   438
+++ system-tools-backends-1.4.2/debug.pl.in	Mon Apr 10 16:04:52 2006
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   439
@@ -83,7 +83,14 @@
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   440
   @buff = split ("\n", $doc);
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   441
   foreach $line (@buff)
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   442
   {
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   443
-    print $fd "$line\n";
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   444
+    if ($line =~ /<password>/)
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   445
+    {
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   446
+      print $fd "# suppress line containing password\n";
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   447
+    }
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   448
+    else
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   449
+    {
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   450
+      print $fd "$line\n";
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   451
+    }
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   452
   }
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   453
 }
3cfd68e4e41f 2006-04-10 Padraig O'Briain <[email protected]>
padraigo
parents: 6962
diff changeset
   454