summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stapelberg <michael@stapelberg.de>2013-09-15 04:33:47 +0000
committerMichael Stapelberg <michael@stapelberg.de>2013-09-15 04:33:47 +0000
commitc419de25e649229caa9fec50deaf73c29fe55f4a (patch)
treea90dc073bd13dc97541d60958d1fbc9e694ef9d6
parent9c1373f308d77d4dfaf7f644591facbe1e6825c3 (diff)
downloadinit-system-helpers-c419de25e649229caa9fec50deaf73c29fe55f4a.tar.gz
use the state file contents for mask/unmask
This is necessary because when removing, the original service file might not be around anymore.
-rwxr-xr-xscript/deb-systemd-helper14
1 files changed, 8 insertions, 6 deletions
diff --git a/script/deb-systemd-helper b/script/deb-systemd-helper
index ae83cfa..18ca4a4 100755
--- a/script/deb-systemd-helper
+++ b/script/deb-systemd-helper
@@ -372,10 +372,11 @@ sub rmdir_if_empty {
sub mask_service {
my ($scriptname, $service_path) = @_;
- my @links = get_link_closure($scriptname, $service_path);
- for my $link (@links) {
- my $service_link = $link->{src};
+ my $dsh_state = dsh_state_path($service_path);
+ my @entries = state_file_entries($dsh_state);
+ debug "Contents: " . Dumper(\@entries);
+ for my $service_link (@entries) {
my $statefile = $service_link;
$statefile =~ s,^/etc/systemd/system/,$masked_state_dir/,;
next if -e $statefile;
@@ -404,10 +405,11 @@ sub mask_service {
sub unmask_service {
my ($scriptname, $service_path) = @_;
- my @links = get_link_closure($scriptname, $service_path);
- for my $link (@links) {
- my $service_link = $link->{src};
+ my $dsh_state = dsh_state_path($service_path);
+ my @entries = state_file_entries($dsh_state);
+ debug "Contents: " . Dumper(\@entries);
+ for my $service_link (@entries) {
my $statefile = $service_link;
$statefile =~ s,^/etc/systemd/system/,$masked_state_dir/,;
next if ! -e $statefile;