OLD | NEW |
| (Empty) |
1 #!/usr/bin/env python | |
2 # -*- coding: utf-8 -*- ------------------------------------------------ | |
3 # vi:set fenc=utf-8 ft=python ts=8 et sw=4 sts=4: | |
4 | |
5 __doc__ = """ Redirect STDIN into an ABP log channel. | |
6 | |
7 """ | |
8 import argparse | |
9 import fcntl | |
10 import os | |
11 import shutil | |
12 import sys | |
13 | |
14 try: | |
15 parser = argparse.ArgumentParser(allow_abbrev=False, description=__doc__) | |
16 except TypeError: | |
17 parser = argparse.ArgumentParser(description=__doc__) | |
18 | |
19 parser.add_argument( | |
20 'name', | |
21 help='The base name of the logfile to import', | |
22 metavar='LOG', | |
23 type=str, | |
24 ) | |
25 | |
26 parser.add_argument( | |
27 '-s', '--source', | |
28 help='The name (recommended) or IP of the source host', | |
29 metavar='HOSTNAME', | |
30 type=str, | |
31 ) | |
32 | |
33 parser.add_argument( | |
34 '-t', '--target', | |
35 help='The location of the upload/import directory', | |
36 metavar='DIRECTORY', | |
37 type=str, | |
38 ) | |
39 | |
40 arguments = parser.parse_args() | |
41 destination = os.path.join(arguments.target, arguments.source, arguments.name) | |
42 output = open(destination, 'a') | |
43 fcntl.flock(output, fcntl.F_WRLCK | fcntl.F_EXLCK) | |
44 | |
45 try: | |
46 shutil.copyfileobj(sys.stdin, output) | |
47 finally: | |
48 fcntl.flock(output, fcntl.F_UNLCK) | |
49 | |
50 output.close() | |
OLD | NEW |