diff options
author | Chris Lawrence <lawrencc@debian.org> | 2005-01-30 08:01:29 -0600 |
---|---|---|
committer | Didier Raboud <odyx@debian.org> | 2005-01-30 08:01:29 -0600 |
commit | 80000249edae50a4c7fcd670cb035fa3f9a82fc3 (patch) | |
tree | 2e4e549e50b90526fd95875403f5e6957b08c6b4 /remove_initd | |
parent | 899197d7a7a690a5c94ae7c2a96c02f8234b0f61 (diff) |
lsb 2.0-5 Debian release.
Diffstat (limited to 'remove_initd')
-rwxr-xr-x | remove_initd | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/remove_initd b/remove_initd index c7dc827..0322c7f 100755 --- a/remove_initd +++ b/remove_initd @@ -4,6 +4,13 @@ import sys, re, os, initdutils if len(sys.argv) > 1: initfile = sys.argv[1] + # If the absolute path isn't specified, assume it's relative to + # cwd; if that doesn't exist, try /etc/init.d + ap = os.path.abspath(initfile) + if os.path.exists(ap): + initfile = ap + else: + initfile = os.path.join('/etc/init.d', initfile) else: print >> sys.stderr, 'Usage: %s /etc/init.d/<init-script>' % sys.argv[0] sys.exit(1) @@ -13,15 +20,29 @@ headers = initdutils.scan_initfile(initfile) provides = headers.get('Provides') if provides: facilities = initdutils.load_facilities() + depends = initdutils.load_depends() for facility in provides: - if facilities.has_key(facility): + if facility in facilities: entries = {} for entry in facilities[facility].items(): if entry[0] != initfile: entries[entry[0]] = entry[1] facilities[facility] = entries + for (initscript, needed) in depends.iteritems(): + for facility in needed: + if facility[0] == "$": + continue + if not facilities.get(facility) and facility in provides: + print >> sys.stderr, 'Unable to remove %s: %s needs %s\n' % ( + initfile, initscript, facility) + sys.exit(1) + + if initfile in depends: + del depends[initfile] + initdutils.save_depends(depends) + initdutils.save_facilities(facilities) initfile = initfile.replace('/etc/init.d/', '') |