root/autopilot/trunk/autopilot/delete_glider.py

Revision 76 (checked in by cbc, 12 years ago)

Create list-options command.

Line 
1 """
2 Delete glider from configuration file.
3
4     Usage:
5
6         delete-glider glider
7
8     or
9
10         python delete_glider.py path/to/config/file glider
11 """
12
13 import os
14 import sys
15 import errno
16 import lockfile as lf
17 import ConfigParser as cp
18
19 if __name__ == "__main__":
20     num_args = len(sys.argv) - 1
21     if num_args != 2:
22         print __doc__
23     else:
24         cfg_path = os.path.abspath(sys.argv[1])
25         glider = sys.argv[2].lower()
26         report = {"glider": glider,
27                   "path": cfg_path,
28                  }
29         try:
30             lock = lf.FileLock(cfg_path)
31             lock.acquire(5)
32         except lf.LockTimeout:
33             lock.break_lock()
34             lock.acquire(0)
35         config = cp.SafeConfigParser()
36         try:
37             with open(cfg_path) as handle:
38                 config.readfp(handle)
39         except IOError as e:
40             if e.errno == errno.ENOENT:
41                 print "Glider {glider} does not exist in {path}.". \
42                       format(**report)
43         else:
44             if config.remove_section(glider):
45                 with open(cfg_path, "w") as handle:
46                     config.write(handle)
47                 print "Glider {glider} deleted from {path}.". \
48                       format(**report)
49             else:
50                 print "Glider {glider} does not exist in {path}.". \
51                       format(**report)
52         finally:
53             lock.release()
Note: See TracBrowser for help on using the browser.