Exemple #1
0
    def __init__(self, path, database_file):
        self.path = path

        # parse config file(s)
        config_filename = cherrypy.config[CONFIG_KEY]
        if not os.path.exists(config_filename):
            raise IOError(errno.ENOENT,
                          "Config file '%s' not found" % config_filename)
        if cherrypy.config.has_key(CONFIG_DEFAULTS_KEY):
            defaults_filename = cherrypy.config[CONFIG_DEFAULTS_KEY]
            # if defaults file doesn't exist, then don't use it
            if not os.path.exists(defaults_filename):
                sys.stderr.write("Warning: configured defaults file "
                                 " '%s' doesn't exist\n" % defaults_filename)
                defaults_filename = None
        else:
            defaults_filename = None
        self._config = ConfigParser(config_filename, defaults_filename)

        # initialise the schedule manager
        schedule_filename = cherrypy.config[SCHEDULE_KEY]
        self._schedule = ScheduleParser(config_filename, schedule_filename)

        # initialise storage
        self._storage = BowerbirdStorage(database_file, self._config,
                                         self._schedule)
Exemple #2
0
def main():
    # parse commandline options
    parser = OptionParser()
    parser.add_option('-b',
                      '--base_directory',
                      dest='base_directory',
                      help='base directory',
                      default=BASE_DIRECTORY)
    parser.add_option('-c',
                      '--config',
                      dest='config',
                      help='configuration_file')
    parser.add_option('-d',
                      '--database-file',
                      dest='database',
                      help='database file')
    parser.add_option('-s',
                      '--schedule-file',
                      dest='schedule',
                      help='schedule file')
    parser.add_option('-f',
                      '--force-rescan',
                      action='store_true',
                      dest='force_rescan',
                      help='force reconstruction of recordings',
                      default=False)
    parser.add_option('-v',
                      '--verbose',
                      action='store_true',
                      dest='verbose',
                      help='add commentary to the process',
                      default=False)
    (options, args) = parser.parse_args()
    if not options.config:
        options.config = os.path.join(options.base_directory, DEFAULT_CONFIG)
    if not options.database:
        options.database = os.path.join(options.base_directory,
                                        DEFAULT_DATABASE)
    if not options.schedule:
        options.schedule = os.path.join(options.base_directory,
                                        DEFAULT_SCHEDULE)
    if not os.path.exists(options.config):
        print >> sys.stderr, "fatal error: config file '%s' does not exist" % options.config
        sys.exit(1)
    config = ConfigParser(options.config)
    schedule = ScheduleParser(options.config, options.schedule)
    storage = BowerbirdStorage(options.database, config, schedule)

    # if requested, clear all recordings so they are re-constructed
    if options.force_rescan:
        storage.clearRecordingFiles()
        storage.clearRecordings()

    # call the update method
    storage.updateRecordingsFromFiles(options.force_rescan, options.verbose)