main: Add configuration infrastructure.
[matthijs/projects/backupninja.git] / src / backupninja
1 #!/usr/bin/python
2 # -*- mode: python; sh-basic-offset: 4; indent-tabs-mode: nil; -*-
3 # vim: set filetype=python sw=4 sts=4 expandtab autoindent:
4 #
5 #    Backupninja python reimplementation, based on original backupninja program
6 #    by riseup.net.
7 #    Copyright (C) 2010  Matthijs Kooijman <matthijs@stdin.nl>
8 #
9 #    This program is free software; you can redistribute it and/or modify
10 #    it under the terms of the GNU General Public License as published by
11 #    the Free Software Foundation; either version 2 of the License, or
12 #    (at your option) any later version.
13 #
14 #    This program is distributed in the hope that it will be useful,
15 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
16 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 #    GNU General Public License for more details.
18 #
19 #    You should have received a copy of the GNU General Public License along
20 #    with this program; if not, write to the Free Software Foundation, Inc.,
21 #    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22
23 """ Check for scheduled backupninja actions and run them when needed """
24
25 import optparse
26 import logging
27 import sys
28
29 from backupninja.log import setup_logging
30 from backupninja import config
31
32 log = logging.getLogger()
33
34 def make_option_parser():
35     description = """%prog checks for scheduled actions and runs them when needed."""
36     parser = optparse.OptionParser(description=description)
37
38     return parser
39  
40 def main(argv):
41     # Parse options (Note that this exits in case of --help or an
42     # invalid commandline)
43     parser = make_option_parser()
44     (options, args) = parser.parse_args(argv)
45
46     # Setup logging
47     setup_logging(options)
48
49     # Load config file
50     global_conf = config.get_global_config(options)
51     if global_conf is None:
52         # Error was already logged
53         return 1
54
55     # Process command
56     parser.print_help()
57
58     return 0
59
60 if __name__ == '__main__':
61     sys.exit(main(sys.argv))