radix = locale.RADIXCHAR
radix = re.escape(radix)
if verbose > 5:
- msg = _("using radix '%s'.") % (radix)
+ msg = _("Using radix '%s'.") % (radix)
logger.debug(msg)
value_raw = ''
value = str(period).strip().lower()
if period == '':
- msg = _("Given period was empty")
+ msg = _("Given period was empty.")
raise ValueError(msg)
if verbose > 4:
'false',
)
-
#========================================================================
class LogrotateConfigurationError(Exception):
@type: dict
'''
- self.logger.debug( _("Logrotate config reader initialised") )
+ self.logger.debug( _("Logrotate config reader initialised.") )
#------------------------------------------------------------
def __str__(self):
_ = self.t.lgettext
if self.verbose > 3:
- self.logger.debug( _("Resetting default values for directives to hard coded values"))
+ msg = _("Resetting default values for directives to hard coded values")
+ self.logger.debug(msg)
self.default = {}
_ = self.t.lgettext
if not pattern_type in pattern_types:
- raise Exception( _("Invalid taboo pattern type '%s' given") % (pattern_type) )
+ msg = _("Invalid taboo pattern type '%s' given.") % (pattern_type)
+ raise Exception(msg)
pattern = ( pattern_types[pattern_type] % pattern )
if self.verbose > 3:
- self.logger.debug( _("New taboo pattern: '%s'.") % (pattern) )
+ msg = _("New taboo pattern: '%s'.") % (pattern)
+ self.logger.debug(msg)
self.taboo.append(pattern)
path_list.append(real_dir)
dir_included[real_dir] = True
else:
- self.logger.debug( _("'%s' is not a directory") % (item))
+ msg = _("'%s' is not a directory.") % (item)
+ self.logger.debug(msg)
# Including default path list from python
def_path = os.defpath
path_list.append(real_dir)
dir_included[real_dir] = True
else:
- self.logger.debug( _("'%s' is not a directory") % (item))
+ msg = _("'%s' is not a directory.") % (item)
+ self.logger.debug(msg)
# Including own defined directories
for item in ('/usr/local/bin', '/sbin', '/usr/sbin', '/usr/local/sbin'):
path_list.append(real_dir)
dir_included[real_dir] = True
else:
- self.logger.debug( _("'%s' is not a directory") % (item))
+ msg = _("'%s' is not a directory.") % (item)
+ self.logger.debug(msg)
self.search_path = path_list
@rtype: list
'''
- #_ = self.t.lgettext
+ _ = self.t.lgettext
path_list = self.search_path
if include_current:
found = True
break
else:
- self.logger.debug( _("Search path '%s' doesn't exists or is not a directory") % (search_dir))
+ msg = _("Search path '%s' doesn't exists or is not "
+ + "a directory.") \
+ % (search_dir)
+ self.logger.debug(msg)
if found:
- self.logger.debug( _("Shred command found: '%s'") %(cmd) )
+ msg = _("Shred command found: '%s'.") % (cmd)
+ self.logger.debug(msg)
self.shred_command = cmd
return True
else:
- self.logger.warning( _("Shred command not found, shred disabled") )
+ msg = _("Shred command not found, shred disabled.")
+ self.logger.warning(msg)
self.shred_command = None
return False
try:
cfile = open(configfile, 'Ur')
except IOError, e:
- raise LogrotateConfigurationError( ( _("Could not read configuration file '%s'") % (configfile) ) + ': ' + str(e))
+ msg = _("Could not read configuration file '%s'") % (configfile)
+ msg += ': ' + str(e)
+ raise LogrotateConfigurationError(msg)
lines = cfile.readlines()
cfile.close()
if line == '{':
if self.verbose > 3:
- self.logger.debug( ( _("Starting a logfile definition (file '%(file)s', line %(line)s)")
- % {'file': configfile, 'line': linenr}))
+ msg = _("Starting a logfile definition.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': configfile, 'lnr': linenr})
+ self.logger.debug(msg)
self._start_logfile_definition(
line = line,
if match or os.path.isabs(line):
if in_fd:
- raise LogrotateConfigurationError(
- ( _("Logfile pattern definition not allowed inside a logfile definition (file '%(file)s', line %(line)s)")
- % {'file': configfile, 'line': linenr})
- )
+ msg = _("Logfile pattern definition not allowed inside "
+ + "a logfile definition.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': configfile, 'lnr': linenr})
+ raise LogrotateConfigurationError(msg)
do_start_logfile_definition = False
# look, whether a start of a logfile definition is necessary
parts = split_parts(line)
if self.verbose > 3:
- self.logger.debug(
- ( _("Split into parts of: '%s'") % (line))
- + ":\n" + pp.pformat(parts)
- )
+ msg = _("Split into parts of: '%s'") % (line)
+ msg += ":\n" + pp.pformat(parts)
+ self.logger.debug(msg)
for pattern in parts:
if pattern == '{':
- raise LogrotateConfigurationError(
- ( _("Syntax error: open curly bracket inside a logfile pattern definition (file '%(file)s', line %(line)s)")
- % {'file': configfile, 'line': linenr})
- )
+ msg = _("Syntax error: open curly bracket inside a"
+ + "logfile pattern definition.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': configfile, 'lnr': linenr})
+ raise LogrotateConfigurationError(msg)
self.new_log['file_patterns'].append(pattern)
# start of a logfile definition, if necessary
match = re.search(r'^}(.*)', line)
if match:
if not in_fd:
- raise LogrotateConfigurationError(
- ( _("Syntax error: unbalanced closing curly bracket found (file '%(file)s', line %(line)s)")
- % {'file': configfile, 'line': linenr})
- )
+ msg = _("Syntax error: unbalanced closing curly bracket found.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': configfile, 'lnr': linenr})
+ raise LogrotateConfigurationError(msg)
rest = match.group(1)
if self.verbose > 2:
- self.logger.debug( ( _("End of a logfile definition (file '%(file)s', line %(line)s)") % {'file': configfile, 'line': linenr}))
+ msg = _("End of a logfile definition.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': configfile, 'lnr': linenr})
+ self.logger.debug(msg)
if rest:
- self.logger.warning(
- ( _("Needless content found at the end of a logfile definition found: '%(rest)s' (file '%(file)s', line %(line)s)")
- % { 'rest': str(rest), 'file': configfile, 'line': linenr})
- )
+ msg = _("Needless content found at the end of a logfile definition found: '%s'.") \
+ (str(rest))
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': configfile, 'lnr': linenr})
+ self.logger.warning(msg)
# set a compress ext, if Compress is True
if self.new_log['compress']:
if not self.new_log['compressext']:
if match:
rest = match.group(1)
if in_fd or in_logfile_list:
- self.logger.warning(
- ( _("Syntax error: include may not appear inside of log file definition (file '%(file)s', line %(line)s)")
- % {'file': configfile, 'line': linenr})
- )
+ msg = _("Syntax error: include may not appear inside of "
+ + "log file definition.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': configfile, 'lnr': linenr})
+ self.logger.warning(msg)
continue
self._do_include(line, rest, configfile, linenr)
continue
if values[0]:
script_name = values[0]
if self.verbose > 3:
- self.logger.debug(
- ( _("Found start of a regular script definition: type: '%(type)s', name: '%(name)s' (file '%(file)s', line %(line)s)")
- % {'type': script_type, 'name': script_name, 'file': configfile, 'line': linenr})
- )
+ msg = _("Found start of a regular script definition: "
+ + "type: '%(type)s', name: '%(name)s'.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': configfile, 'lnr': linenr})
+ self.logger.debug(msg)
newscript = self._start_log_script_definition(
script_type = script_type,
script_name = script_name,
if newscript:
in_script = True
if self.verbose > 3:
- self.logger.debug( ( _("New log script name: '%s'.") % (newscript) ))
+ msg = _("New log script name: '%s'.") % (newscript)
+ self.logger.debug(msg)
continue
# start of an explicite external script definition
match = re.search(r'^script(\s+.*)?$', line, re.IGNORECASE)
if match:
if self.verbose > 3:
- self.logger.debug( ( _("Found start of a external script definition. (file '%(file)s', line %(line)s)")
- % {'file': configfile, 'line': linenr})
- )
+ msg = _("Found start of a external script definition.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': configfile, 'lnr': linenr})
+ self.logger.debug(msg)
rest = match.group(1)
if in_fd or in_logfile_list:
- self.logger.warning(
- ( _("Syntax error: external script definition may not appear inside of a log file definition (file '%(file)s', line %(line)s)")
- % {'file': configfile, 'line': linenr})
- )
+ msg = _("Syntax error: external script definition may "
+ + "not appear inside of a log file definition.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': configfile, 'lnr': linenr})
+ self.logger.warning(msg)
continue
newscript = self._ext_script_definition(
line, rest, configfile, linenr
if newscript:
in_script = True
if self.verbose > 3:
- self.logger.debug( ( _("New external script name: '%s'.") % (newscript) ))
+ msg = _("New external script name: '%s'.") % (newscript)
+ self.logger.debug(msg)
continue
# all other options
if not self._option(line, in_fd, configfile, linenr):
- self.logger.warning( ( _("Syntax error in file '%(file)s', line %(line)s")
- % {'file': configfile, 'line': linenr})
- )
+ msg = _("Syntax error in file '%(file)s', line %(line)s") \
+ % {'file': configfile, 'line': linenr}
+ self.logger.warning(msg)
return True
_ = self.t.lgettext
if self.verbose > 4:
- self.logger.debug(
- ( _("Checking line '%(line)s' for a logrotate option. (file '%(file)s', line %(lnr)s)")
- % {'line': line, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Checking line '%s' for a logrotate option.") % (line)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
# where to insert the option?
directive = self.default
option = match.group(1).lower()
val = match.group(2)
else:
- self.logger.warning( ( _("Could not detect option in line '%s'.") % (line)))
+ msg = _("Could not detect option in line '%s'.") % (line)
+ self.logger.warning(msg)
return False
val = re.sub(r'^\s+$', '', val)
if self.verbose > 4:
pattern = r'^(' + '|'.join(unsupported_options) + r')$'
match = re.search(pattern, option, re.IGNORECASE)
if match:
- self.logger.info(
- ( _("Unsupported option '%(option)s'. (file '%(file)s', line %(lnr)s)")
- % {'option': match.group(1).lower(), 'file': filename, 'lnr': linenr})
- )
+ msg = _("Unsupported option '%s'.") % (match.group(1).lower())
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.info(msg)
return True
# Check for boolean option
negated = match.group(1)
key = match.group(2).lower()
if val:
- self.logger.warning(
- ( _("Found value '%(value)s' behind the boolean option '%(option)s', ignoring. (file '%(file)s', line %(lnr)s)")
- % {'value': val, 'option': option, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Found value '%(value)s' behind the boolean option "
+ + "'%(option)s', ignoring.") \
+ % {'value': val, 'option': option}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
if negated is None:
option_value = True
else:
option_value = False
if self.verbose > 4:
- self.logger.debug(
- ( _("Setting boolean option '%(option)s' in '%(directive)s' to '%(value)s'. (file '%(file)s', line %(lnr)s)")
- % {'option': key, 'directive': directive_str, 'value': str(option_value), 'file': filename, 'lnr': linenr})
- )
+ msg = _("Setting boolean option '%(option)s' in "
+ + "'%(directive)s' to '%(value)s'.") \
+ % {'option': key,
+ 'directive': directive_str,
+ 'value': str(option_value)
+ }
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
directive[key] = option_value
if key == 'copy' and option_value:
if directive['copytruncate']:
- msg = _("Option 'copy' disables option 'copytruncate'. (file '%(file)s', line %(lnr)s)") \
- % {'file': filename, 'lnr': linenr}
+ msg = _("Option '%(by)s' disables option '%(what)'.") \
+ % {'by': 'copy', 'what': 'copytruncate'}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
self.logger.warning(msg)
directive['copytruncate'] = False
if directive['create']['enabled']:
- msg = _("Option 'copy' disables option 'create'. (file '%(file)s', line %(lnr)s)") \
- % {'file': filename, 'lnr': linenr}
+ msg = _("Option '%(by)s' disables option '%(what)'.") \
+ % {'by': 'copy', 'what': 'create'}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
self.logger.warning(msg)
directive['create']['enabled'] = False
elif key == 'copytruncate' and option_value:
if directive['copy']:
- msg = _("Option 'copytruncate' disables option 'copy'. (file '%(file)s', line %(lnr)s)") \
- % {'file': filename, 'lnr': linenr}
+ msg = _("Option '%(by)s' disables option '%(what)'.") \
+ % {'by': 'copytruncate', 'what': 'copy'}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
self.logger.warning(msg)
directive['copy'] = False
if directive['create']['enabled']:
- msg = _("Option 'copytruncate' disables option 'create'. (file '%(file)s', line %(lnr)s)") \
- % {'file': filename, 'lnr': linenr}
+ msg = _("Option '%(by)s' disables option '%(what)'.") \
+ % {'by': 'copytruncate', 'what': 'create'}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
self.logger.warning(msg)
directive['create']['enabled'] = False
return True
if negated is None:
if key in options_with_values:
if val is None or val == '':
- self.logger.warning( ( _("Option '%s' without a necessary value.") % (key)))
+ msg = _("Option '%s' must have a value.") % (key)
+ self.logger.warning(msg)
return False
else:
if val is None or val == '':
try:
option_value = long(val)
except ValueError, e:
- self.logger.warning(
- ( _("Option '%(option)s' has no integer value: %(msg)s.")
- % {'option': key, 'msg': str(e)})
- )
+ msg = _("Option '%(option)s' has no "
+ + "integer value: %(msg)s.") \
+ % {'option': key, 'msg': str(e)}
+ self.logger.warning(msg)
return False
if option_value < 0:
- self.logger.warning(
- ( _("Negative value %(value)s for option '%(option)s' is not allowed.")
- % {'value': str(option_value), 'option': key})
- )
+ msg = _("Negative value %(value)s for option '%(option)s' "
+ + "is not allowed.") \
+ % {'value': str(option_value), 'option': key}
+ self.logger.warning(msg)
return False
if self.verbose > 4:
- self.logger.debug(
- ( _("Setting integer option '%(option)s' in '%(directive)s' to '%(value)s'. (file '%(file)s', line %(lnr)s)")
- % {'option': key, 'directive': directive_str, 'value': str(option_value), 'file': filename, 'lnr': linenr})
- )
+ msg = _("Setting integer option '%(option)s' in '%(directive)s' "
+ + "to '%(value)s'.") \
+ % { 'option': key,
+ 'directive': directive_str,
+ 'value': str(option_value)
+ }
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
directive[key] = option_value
return True
directive['mailaddress'] = None
if self.verbose > 4:
pp = pprint.PrettyPrinter(indent=4)
- msg = _("Setting mail address in '%(directive)s' to '%(addr)s'. (file '%(file)s', line %(lnr)s)") \
+ msg = _("Setting mail address in '%(directive)s' to "
+ + "'%(addr)s'.") \
% {
'directive': directive_str,
'addr': pp.pformat(directive['mailaddress']),
- 'file': filename,
- 'lnr': linenr,
- }
+ }
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
self.logger.debug(msg)
return True
option_value = True
directive['mailfirst'] = option_value
if self.verbose > 4:
- self.logger.debug(
- ( _("Setting mailfirst in '%(directive)s' to '%(value)s'. (file '%(file)s', line %(lnr)s)")
- % {'directive': directive_str, 'value': str(option_value), 'file': filename, 'lnr': linenr})
- )
+ msg = _("Setting mailfirst in '%(directive)s' "
+ + "to '%(value)s'.") \
+ % { 'directive': directive_str,
+ 'value': str(option_value)
+ }
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
if val is not None and val != '':
- self.logger.warning(
- ( _("Senseless option value '%(value)s' after '%(option)s'.")
- % {'value': val, 'option': option.lower()})
- )
+ msg = _("Senseless option value '%(value)s' after "
+ + "'%(option)s'.") \
+ % {'value': val, 'option': option.lower()}
+ self.logger.warning(msg)
return False
return True
key = match.group(1).lower()
if key in options_with_values:
if self.verbose > 5:
- self.logger.debug( ( _("Option '%s' must have a value.") %(key)))
+ msg = _("Option '%s' must have a value.") % (key)
+ self.logger.debug(msg)
if (val is None) or (val == ''):
- self.logger.warning( ( _("Option '%s' without a value") %(key)))
+ msg = _("Option '%s' without a value.") % (key)
+ self.logger.debug(msg)
return False
if key == 'compresscmd':
prog = self.check_compress_command(val)
if prog is None:
- self.logger.warning( ( _("Compress command '%s' not found.") %(val)))
+ msg = _("Compress command '%s' not found.") % (val)
+ self.logger.warning(msg)
return False
val = prog
if key == 'compressoptions' and val is None:
if self.verbose > 5:
self.logger.debug( ( _("Option '%s' must have a value.") %(key)))
if (val is None) or (re.search(r'^\s*$', val) is not None):
- self.logger.warning( ( _("Option '%s' without a value") %(key)))
+ self.logger.warning( ( _("Option '%s' without a value.") %(key)))
return False
if key in path_options:
if not os.path.abspath(val):
use_tls = bool(val)
val = use_tls
if self.verbose > 4:
- self.logger.debug(
- ( _("Setting global option '%(option)s' to '%(value)s'. (file '%(file)s', line %(lnr)s)")
- % {'option': key, 'directive': directive_str, 'value': str(val), 'file': filename, 'lnr': linenr})
- )
+ msg = _("Setting global option '%(option)s' to '%(value)s'.") \
+ % {'option': key, 'directive': directive_str}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
self.global_option[key] = val
return True
if match:
key = match.group(1).lower()
if self.verbose > 4:
- self.logger.debug(
- ( _("Checking 'period': key '%(key)s', value '%(value)s'. (file '%(file)s', line %(lnr)s)")
- % {'key': key, 'value': str(val), 'file': filename, 'lnr': linenr})
- )
+ msg = _("Checking for option 'period': key '%(key)s', value '%(value)s'.") \
+ % {'key': key, 'value': val}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
option_value = 1
if key in valid_periods:
if (val is not None) and (re.search(r'^\s*$', val) is None):
- self.logger.warning(
- ( _("Option '%(option)s' may not have a value ('%(value)s'). (file '%(file)s', line %(lnr)s)")
- % {'option': key, 'value': val, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Option '%(option)s' may not have a value ('%(value)s').") \
+ % {'option': key, 'value': val}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
option_value = valid_periods[key]
else:
try:
option_value = period2days(val, verbose = self.verbose)
except ValueError, e:
- self.logger.warning( ( _("Invalid period definition: '%s'") %(val) ))
+ msg = _("Invalid period definition: '%s'.") % (val)
+ self.logger.warning(msg)
return False
if self.verbose > 4:
- self.logger.debug(
- ( _("Setting 'period' in '%(directive)s' to %(days)f days. (file '%(file)s', line %(lnr)s)")
- % {'directive': directive_str, 'days': option_value, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Setting '%(what)s' in '%(directive)s' to %(to)f days.") \
+ % { 'what': 'period',
+ 'directive': directive_str,
+ 'to': option_value,
+ }
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
directive['period'] = option_value
return True
try:
option_value = period2days(val, verbose = self.verbose)
except ValueError, e:
- self.logger.warning( ( _("Invalid maxage definition: '%s'") %(val) ))
+ msg = _("Invalid maxage definition: '%s'") % (val)
+ self.logger.warning(msg)
return False
if self.verbose > 4:
- self.logger.debug(
- ( _("Setting 'maxage' in '%(directive)s' to %(days)f days. (file '%(file)s', line %(lnr)s)")
- % {'directive': directive_str, 'days': option_value, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Setting '%(what)s' in '%(directive)s' to %(to)f days.") \
+ % { 'what': 'maxage',
+ 'directive': directive_str,
+ 'to': option_value,
+ }
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
directive['maxage'] = option_value
return True
dateext = None
if self.verbose > 4:
- self.logger.debug(
- ( _("Checking 'dateext', negated: '%(negated)s'. (file '%(file)s', line %(lnr)s)")
- % {'negated': str(negated), 'file': filename, 'lnr': linenr})
- )
+ msg = _("Checking for option 'dateext', negated: '%s'.") % (str(negated))
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
values = []
if val is not None:
values = split_parts(val)
re.search(r'^\s*$', first_val) is not None:
option_value = 'true'
if self.verbose > 5:
- self.logger.debug(
- ( _("'dateext': first_val: '%(first_val)s', option_value: '%(value)s'. (file '%(file)s', line %(lnr)s)")
- % {'first_val': first_val, 'value': option_value, 'file': filename, 'lnr': linenr})
- )
+ msg = _("'dateext': first_val: '%(first_val)s', option_value: '%(value)s'.") \
+ % {'first_val': first_val, 'value': option_value}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
if option_value in yes_values:
use_dateext = True
elif option_value in no_values:
dateext = val
if self.verbose > 4:
- self.logger.debug(
- ( _("Setting 'dateext' in '%(directive)s' to %(ext)s. (file '%(file)s', line %(lnr)s)")
- % {'directive': directive_str, 'ext': str(use_dateext), 'file': filename, 'lnr': linenr})
- )
+ msg = _("Setting '%(what)s' in '%(directive)s' to %(to)s.") \
+ % { 'what': 'dateeext',
+ 'directive': directive_str,
+ 'to': str(use_dateext)
+ }
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
directive['dateext'] = use_dateext
if dateext is not None:
if self.verbose > 4:
- self.logger.debug(
- ( _("Setting 'datepattern' in '%(directive)s' to '%(pattern)s'. (file '%(file)s', line %(lnr)s)")
- % {'directive': directive_str, 'pattern': dateext, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Setting '%(what)s' in '%(directive)s' to %(to)s.") \
+ % { 'what': 'datepattern',
+ 'directive': directive_str,
+ 'to': dateext
+ }
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
directive['datepattern'] = dateext
return True
negated = True
if self.verbose > 5:
- self.logger.debug(
- ( _("Checking for 'create' ... (file '%(file)s', line %(lnr)s)")
- % {'file': filename, 'lnr': linenr})
- )
+ msg = _("Checking for option '%s' ...") % ('create')
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
if negated:
if self.verbose > 4:
- self.logger.debug(
- ( _("Removing 'create'. (file '%(file)s', line %(lnr)s)")
- % {'file': filename, 'lnr': linenr})
- )
+ msg = _("Removing '%s'.") % ('create')
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
directive['create']['enabled'] = False
return True
if directive['copy']:
- msg = _("Option 'copy' was set, so option 'create' has no effect. (file '%(file)s', line %(lnr)s)") \
- % {'file': filename, 'lnr': linenr}
+ msg = _("Option '%s' was set, so option 'create' "
+ + "has no effect.") % ('copy')
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
self.logger.warning(msg)
directive['create']['enabled'] = False
return True
if directive['copytruncate']:
- msg = _("Option 'copytruncate' was set, so option 'create' has no effect. (file '%(file)s', line %(lnr)s)") \
- % {'file': filename, 'lnr': linenr}
+ msg = _("Option '%s' was set, so option 'create' "
+ + "has no effect.") % ('copytruncate')
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
self.logger.warning(msg)
directive['create']['enabled'] = False
return True
try:
owner = pwd.getpwnam(owner_raw)[2]
except KeyError:
- self.logger.warning( ( _("Invalid owner '%s' in 'create'.") %(owner_raw)))
+ msg = _("Invalid owner '%(owner)s' in '%(what)s'.") \
+ % {'owner': owner_raw, 'what': 'create'}
+ self.logger.warning(msg)
return False
# Check for Group (gid)
try:
group = grp.getgrnam(group_raw)[2]
except KeyError:
- self.logger.warning( ( _("Invalid group '%s' in 'create'.") %(group_raw)))
+ msg = _("Invalid group '%(group)s' in '%(what)s'.") \
+ % {'group': group_raw, 'what': 'create'}
+ self.logger.warning(msg)
return False
# Give values back ...
negated = True
if self.verbose > 5:
- self.logger.debug(
- ( _("Checking for 'olddir' ... (file '%(file)s', line %(lnr)s)")
- % {'file': filename, 'lnr': linenr})
- )
+ msg = _("Checking for option '%s' ...") % ('olddir')
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
if negated:
if self.verbose > 4:
- self.logger.debug(
- ( _("Removing 'olddir'. (file '%(file)s', line %(lnr)s)")
- % {'file': filename, 'lnr': linenr})
- )
+ msg = _("Removing '%s'.") % ('olddir')
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
directive['olddir']['enabled'] = False
return True
# Check for dirname of olddir
if len(values) < 1 or values[0] is None or re.search(r'^\s*$', values[0]) is not None:
- self.logger.warning( ( _("Option 'olddir' without a value given.")))
+ msg = _("Option '%s' without a value given.") % ('olddir')
+ self.logger.warning(msg)
return False
directive['olddir']['dirname'] = values[0]
directive['olddir']['enabled'] = True
try:
owner = pwd.getpwnam(owner_raw)[2]
except KeyError:
- self.logger.warning( ( _("Invalid owner '%s' in 'olddir'.") %(owner_raw)))
+ msg = _("Invalid owner '%(owner)s' in '%(what)s'.") \
+ % {'owner': owner_raw, 'what': 'olddir'}
+ self.logger.warning(msg)
return False
# Check for Group (gid)
if len(values) > 3:
group_raw = values[3]
if self.verbose > 5:
- self.logger.debug(
- ( _("Trying to determine olddir group '%(group)s' ... (file '%(file)s', line %(lnr)s)")
- % {'group': group_raw, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Trying to determine olddir group '%s' ...") % (group_raw)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)") % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
if re.search(r'^[1-9]\d*$', group_raw) is not None:
group = int(group_raw)
else:
try:
group = grp.getgrnam(group_raw)[2]
except KeyError:
- self.logger.warning( ( _("Invalid group '%s' in 'olddir'.") %(group_raw)))
+ msg = _("Invalid group '%(group)s' in '%(what)s'.") \
+ % {'group': group_raw, 'what': 'olddir'}
+ self.logger.warning(msg)
return False
# Give values back ...
if match:
size_str = re.sub(r'^size(?:\s*=\s*|\s+)', '', line)
if self.verbose > 5:
- self.logger.debug(
- ( _("Checking for option 'size', value: '%(value)s' ... (file '%(file)s', line %(lnr)s)")
- % {'value': size_str, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Checking for option 'size', value '%s' ...") % (size_str)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
if size_str is None:
self.logger.warning( _("Failing size definition."))
return False
self.logger.warning( ( _("Invalid definition for 'size': '%s'.") %(size_str)))
return False
if self.verbose > 4:
- self.logger.debug(
- ( _("Got a rotation size in '%(directive)s' of %(bytes)d bytes. (file '%(file)s', line %(lnr)s)")
- % {'directive': directive_str, 'bytes': size_bytes, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Got a rotation size in '%(directive)s' of %(bytes)d bytes.") \
+ % {'directive': directive_str, 'bytes': size_bytes}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
directive['size'] = size_bytes
return True
if match:
key = match.group(1).lower()
if self.verbose > 5:
- self.logger.debug(
- ( _("Checking for option 'taboo%(type)s', value: '%(value)s' ... (file '%(file)s', line %(lnr)s)")
- % {'type': key, 'value': val, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Checking for option 'taboo%(type)s', value: '%(value)s' ...") \
+ % {'type': key, 'value': val}
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.debug(msg)
if in_fd:
self.logger.warning( ( _("Option 'taboo%s' not allowed inside a logfile directive.") %(key)))
# insufficient arguments to include ...
if len(values) < 1:
- self.logger.warning(
- ( _("No script name given in a script directive. (file '%(file)s', line %(lnr)s)")
- % {'file': filename, 'lnr': linenr})
- )
+ msg = _("No script name given in a script directive.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
return None
# to much arguments to include ...
if len(values) > 1:
- self.logger.warning(
- ( _("Only one script name is allowed in a script directive, the first one is used. (file '%(file)s', line %(lnr)s)")
- % {'file': filename, 'lnr': linenr})
- )
+ msg = _("Only one script name is allowed in a script directive, "
+ + "the first one is used.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
script_name = values[0]
if script_name in self.scripts:
- self.logger.warning(
- ( _("Script name '%(name)s' is allready declared, it will be overwritten. (file '%(file)s', line %(lnr)s)")
- % {'name': script_name, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Script name '%s' is allready declared, it will "
+ + "be overwritten.") % (script_name)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
self.scripts[script_name] = LogRotateScript(
name = script_name,
verbose = self.verbose,
test_mode = self.test_mode,
)
- #self.scripts[script_name]['cmd'] = []
- #self.scripts[script_name]['post_files'] = 0
- #self.scripts[script_name]['last_files'] = 0
- #self.scripts[script_name]['first'] = False
- #self.scripts[script_name]['prerun'] = False
- #self.scripts[script_name]['donepost'] = False
- #self.scripts[script_name]['donelast'] = False
return script_name
# insufficient arguments to include ...
if len(values) < 1:
- self.logger.warning(
- ( _("No file or directory given in a include directive (file '%(file)s', line %(lnr)s)")
- % {'file': filename, 'lnr': linenr})
- )
+ msg = _("No file or directory given in a include directive.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
return False
# to much arguments to include ...
if len(values) > 1:
- self.logger.warning(
- ( _("Only one declaration of a file or directory is allowed in a include directive, the first one is used. (file '%(file)s', line %(lnr)s)")
- % {'file': filename, 'lnr': linenr})
- )
+ msg = _("Only one declaration of a file or directory is allowed "
+ + "in a include directive, the first one is used.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
include = values[0]
# including object doesn't exists
if not os.path.exists(include):
- self.logger.warning(
- ( _("Including object '%(include)s' doesn't exists. (file '%(file)s', line %(lnr)s)")
- % {'include': include, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Including object '%s' doesn't exists.") % (include)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
return False
include = os.path.abspath(include)
# including object is neither a regular file nor a directory
if not (os.path.isfile(include) or os.path.isdir(include)):
- self.logger.warning(
- ( _("Including object '%(include)s' is neither a regular file nor a directory. (file '%(file)s', line %(lnr)s)")
- % {'include': include, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Including object '%s' is neither a regular "
+ + "file nor a directory.") % (include)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
return False
if self.verbose > 1:
- self.logger.debug( ( _("Trying to include object '%s' ...") % (include) ))
+ msg = _("Trying to include object '%s' ...") % (include)
+ self.logger.debug(msg)
# including object is a regular file
if os.path.isfile(include):
if include in self.config_files:
- self.logger.warning(
- ( _("Recursive including of '%(include)s'. (file '%(file)s', line %(lnr)s)")
- % {'include': include, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Recursive including of '%s'.") % (include)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
return False
return self._read(include)
# This should never happen ...
if not os.path.isdir(include):
- raise Exception(
- ( _("What the hell is this: '%(include)s'. (file '%(file)s', line %(lnr)s)")
- % {'include': include, 'file': filename, 'lnr': linenr})
- )
+ msg = _("What the hell is this: '%s'.") % (include)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ raise Exception(msg)
# including object is a directory - include all files
if self.verbose > 1:
- self.logger.debug( ( _("Including directory '%s' ...") % (include) ))
+ msg = _("Including directory '%s' ...") % (include)
+ self.logger.debug(msg)
dir_list = os.listdir(include)
for item in sorted(dir_list, key=str.lower):
item_path = os.path.abspath(os.path.join(include, item))
if self.verbose > 2:
- self.logger.debug( ( _( "Including item '%(item)s' ('%(path)s') ..." )
- % {'item': item, 'path': item_path} )
- )
+ msg = _("Including item '%(item)s' ('%(path)s') ...") \
+ % {'item': item, 'path': item_path}
+ self.logger.debug(msg)
# Skip directories
if os.path.isdir(item_path):
if self.verbose > 1:
- self.logger.debug( ( _("Skip subdirectory '%s' in including.") % (item_path)))
+ msg = _("Skip subdirectory '%s' in including.") \
+ % (item_path)
+ self.logger.debug(msg)
continue
# Skip non regular files
if not os.path.isfile(item_path):
- self.logger.debug( ( _("Item '%s' is not a regular file.") % (item_path)))
+ msg = _("Item '%s' is not a regular file.") % (item_path)
+ self.logger.debug(msg)
continue
# Check for taboo pattern
match = re.search(pattern, item)
if match:
if self.verbose > 1:
- self.logger.debug(
- ( _("Item '%(item)s' is matching pattern '%(pattern)s', skiping.")
- % {'item': item, 'pattern': pattern})
- )
+ msg = _("Item '%(item)s' is matching pattern "
+ + "'%(pattern)s', skiping.") \
+ % {'item': item, 'pattern': pattern}
+ self.logger.debug(msg)
taboo_found = True
break
if taboo_found:
# Check, whther it was former included
if item_path in self.config_files:
- self.logger.warning(
- ( _("Recursive including of '%(include)s' (file '%(file)s', line %(lnr)s)")
- % {'include': item_path, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Recursive including of '%s'.") % (item_path)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ self.logger.warning(msg)
return False
self._read(item_path)
_ = self.t.lgettext
if in_fd:
- raise LogrotateConfigurationError(
- ( _("Nested logfile definitions are not allowed. (file '%(file)s', line %(lnr)s)")
- % {'file': filename, 'lnr': linenr})
- )
+ msg = _("Nested logfile definitions are not allowed.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ raise LogrotateConfigurationError(msg)
if not in_logfile_list:
- raise LogrotateConfigurationError(
- ( _("No logfile pattern defined on starting a logfile definition. (file '%(file)s', line %(lnr)s)")
- % {'file': filename, 'lnr': linenr})
- )
+ msg = _("No logfile pattern defined on starting a "
+ + "logfile definition.")
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ raise LogrotateConfigurationError(msg)
#------------------------------------------------------------
def _start_log_script_definition( self, script_type, script_name, line, filename, in_fd, linenr):
_ = self.t.lgettext
if not in_fd:
- raise LogrotateConfigurationError(
- ( _("Directive '%(directive)s' is not allowed outside of a logfile definition. (file '%(file)s', line %(lnr)s)")
- % {'directive': script_type, 'file': filename, 'lnr': linenr})
- )
+ msg = _("Directive '%s' is not allowed outside of a logfile "
+ + "definition.") % (script_type)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': filename, 'lnr': linenr})
+ raise LogrotateConfigurationError(msg)
if script_name:
self.new_log[script_type] = script_name
verbose = self.verbose,
test_mode = self.test_mode,
)
- #self.scripts[new_script_name] = {}
- #self.scripts[new_script_name]['cmd'] = []
- #self.scripts[new_script_name]['post_files'] = 0
- #self.scripts[new_script_name]['last_files'] = 0
- #self.scripts[new_script_name]['first'] = False
- #self.scripts[new_script_name]['prerun'] = False
- #self.scripts[new_script_name]['donepost'] = False
- #self.scripts[new_script_name]['donelast'] = False
self.new_log[script_type] = new_script_name
_ = self.t.lgettext
if self.verbose > 3:
- self.logger.debug( _("Starting a new log directive with default values."))
+ msg = _("Starting a new log directive with default values.")
+ self.logger.debug(msg)
self.new_log = {}
for pattern in self.new_log['file_patterns']:
if self.verbose > 1:
- msg = _("Find all logfiles for shell matching pattern '%s' ...") \
+ msg = _("Find all logfiles for shell matching "
+ + "pattern '%s' ...") \
% (pattern)
self.logger.debug(msg)
logfiles = glob.glob(pattern)
continue
for logfile in logfiles:
if self.verbose > 1:
- msg = _("Found logfile '%(file)s for pattern '%(pattern)s'.") \
+ msg = _("Found logfile '%(file)s for pattern "
+ + "'%(pattern)s'.") \
% {'file': logfile, 'pattern': pattern }
self.logger.debug(msg)
if logfile in self.defined_logfiles:
f = self.defined_logfiles[logfile]
- msg = ( _("Logfile '%(logfile)s' is even defined (file '%(cfgfile)s', " +
- "row %(rownum)d) and so not taken a second time.")
+ msg = ( _("Logfile '%(logfile)s' is even defined "
+ + "(file '%(cfgfile)s', row %(rownum)d) "
+ + "and so not taken a second time.")
% {'logfile': logfile,
'cfgfile': f['file'],
'rownum': f['rownum']}
import re
import sys
+import os.path
import gettext
from optparse import OptionError
if self.parser.has_option('--version'):
self.parser.remove_option('--version')
- msg = _('set this do simulate commands')
+ msg = _('Set this do simulate commands')
self.parser.add_option(
'--simulate',
'--test',
help = to_unicode_or_bust(msg),
)
- msg = _('set the verbosity level')
+ msg = _('Set the verbosity level')
self.parser.add_option(
'--verbose',
'-v',
help = to_unicode_or_bust(msg),
)
- msg = _('Command to send mail (instead of using the Phyton email package)')
+ msg = _('Command to send mail (instead of using SMTP or the predefined sendmail command).')
self.parser.add_option(
'--mail',
'-m',
self.mailer.sendmail = mail_cmd
# end of init properties
- self.logger.debug( _("Logrotating initialised") )
+ self.logger.debug( _("Logrotating initialised.") )
if not self.read_configuration():
- self.logger.error( _('Could not read configuration') )
+ self.logger.error( _('Could not read configuration.') )
sys.exit(1)
if config_check:
if not self._write_pidfile():
sys.exit(3)
- self.logger.debug( _("Logrotating ready for work") )
+ self.logger.debug( _("Logrotating ready for work.") )
# Create status file object
self.state_file = LogrotateStatusFile(
should_rotate = self._should_rotate(logfile, cur_desc_index)
if self.verbose > 1:
if should_rotate:
- msg = _("logfile '%s' WILL rotated.")
+ msg = _("Logfile '%s' WILL rotated.")
else:
- msg = _("logfile '%s' will NOT rotated.")
+ msg = _("Logfile '%s' will NOT rotated.")
self.logger.debug(msg % (logfile))
if not should_rotate:
continue
# Check and set permissions of new logfile
if new_mode != old_mode:
- msg = _("Setting permissions of '%(file)s' to %(mode)4o.") \
- % {'file': file_from, 'mode': new_mode}
+ msg = _("Setting permissions of '%(target)s' to %(mode)4o.") \
+ % {'target': file_from, 'mode': new_mode}
self.logger.info(msg)
if not self.test:
try:
os.chmod(file_from, new_mode)
except OSError, e:
- msg = _("Error on chmod of '%(file)s': %(err)s") \
- % {'file': file_from, 'err': e.strerror}
+ msg = _("Error on chmod of '%(target)s': %(err)s") \
+ % {'target': file_from, 'err': e.strerror}
self.logger.warning(msg)
# Check and set ownership of new logfile
olddir = os.path.normpath(olddir)
if self.verbose > 1:
- msg = _("Olddir name is now '%s'") % (olddir)
+ msg = _("Olddir name is now '%s'.") % (olddir)
self.logger.debug(msg)
# Check for Existence and Consistence
(dir_head, dir_tail) = os.path.split(dir_head)
dirs.insert(0, dir_tail)
if self.verbose > 2:
- msg = _("Directory chain to create: '%s'") % (str(dirs))
+ msg = _("Directory chain to create: '%s'.") % (str(dirs))
self.logger.debug(msg)
# Create olddir recursive, if necessary
_ = self.t.lgettext
if self.verbose > 3:
- msg = _("Executing command: '%s'") % (command)
+ msg = _("Executing command: '%s'.") % (command)
self.logger.debug(msg)
if not force:
if self.test:
try:
retcode = subprocess.call(command, shell=True)
if self.verbose > 3:
- msg = _("Got returncode: '%s'") % (retcode)
+ msg = _("Got returncode: '%s'.") % (retcode)
self.logger.debug(msg)
if retcode < 0:
- msg = _("Child was terminated by signal %d") % (-retcode)
+ msg = _("Child was terminated by signal %d.") % (-retcode)
self.logger.error(msg)
return False
if retcode != expected_retcode:
self.logger.debug(msg)
if not os.path.exists(logfile):
- msg = _("logfile '%s' doesn't exists, not rotated") % (logfile)
+ msg = _("Logfile '%s' doesn't exists, not rotated.") % (logfile)
if not definition['missingok']:
self.logger.error(msg)
else:
return False
if not os.path.isfile(logfile):
- msg = _("logfile '%s' is not a regular file, not rotated") % (logfile)
+ msg = _("Logfile '%s' is not a regular file, not rotated.") % (logfile)
self.logger.warning(msg)
return False
filesize = os.path.getsize(logfile)
if self.verbose > 2:
- msg = _("Filesize of '%(file)s': %(size)d") % {'file': logfile, 'size': filesize}
+ msg = _("Filesize of '%(file)s': %(size)d.") % {'file': logfile, 'size': filesize}
self.logger.debug(msg)
if not filesize:
if not definition['ifempty']:
if self.verbose > 1:
- msg = _("Logfile '%s' has a filesize of Zero, not rotated") % (logfile)
+ msg = _("Logfile '%s' has a filesize of Zero, not rotated.") % (logfile)
self.logger.debug(msg)
return False
last_rotated = self.state_file.get_rotation_date(logfile)
if self.verbose > 2:
- msg = _("Date of last rotation: %s") %(last_rotated.isoformat(' '))
+ msg = _("Date of last rotation: %s.") % (last_rotated.isoformat(' '))
self.logger.debug(msg)
next_rotation = last_rotated + timedelta(days = definition['period'])
if self.verbose > 2:
- msg = _("Date of next rotation: %s") %(next_rotation.isoformat(' '))
+ msg = _("Date of next rotation: %s.") % (next_rotation.isoformat(' '))
self.logger.debug(msg)
if filesize < maxsize:
_ = self.t.lgettext
if self.verbose > 1:
- msg = _("Compressing source '%(source)s' to target'%(target)s' with module zipfile.") \
- % {'source': source, 'target': target}
+ msg = _("Compressing source '%(source)s' to target'%(target)s' with module '%(module)s'.") \
+ % {'source': source, 'target': target, 'module': 'zipfile'}
self.logger.debug(msg)
if not self.test:
_ = self.t.lgettext
if self.verbose > 1:
- msg = _("Compressing source '%(source)s' to target'%(target)s' with module gzip.") \
- % {'source': source, 'target': target}
+ msg = _("Compressing source '%(source)s' to target'%(target)s' with module '%(module)s'.") \
+ % {'source': source, 'target': target, 'module': 'gzip'}
self.logger.debug(msg)
if not self.test:
_ = self.t.lgettext
if self.verbose > 1:
- msg = _("Compressing source '%(source)s' to target'%(target)s' with module bz2.") \
- % {'source': source, 'target': target}
+ msg = _("Compressing source '%(source)s' to target'%(target)s' with module '%(module)s'.") \
+ % {'source': source, 'target': target, 'module': 'bz2'}
self.logger.debug(msg)
if not self.test:
% {'name': self.name, 'retcode': retcode}
self.logger.debug(msg)
if retcode < 0:
- msg = _("Child in script '%(name)s' was terminated by signal %(retcode)d") \
+ msg = _("Child in script '%(name)s' was terminated by signal %(retcode)d.") \
% {'name': self.name, 'retcode': -retcode}
self.logger.error(msg)
return False
i += 1
line = line.strip()
if self.verbose > 4:
- msg = _("Performing status file line '%(line)s' (file: '%(file)s', row: %(row)d)") \
- % {'line': line, 'file': self.file_name, 'row': i, }
+ msg = _("Performing status file line '%s'.") \
+ % (line)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': self.file_name, 'lnr': i})
self.logger.debug(msg)
# check for file heading
if i == 1:
- match = re.search(r'^logrotate\s+state\s+-+\s+version\s+([23])$', line, re.IGNORECASE)
+ match = re.search(
+ r'^logrotate\s+state\s+-+\s+version\s+([23])$',
+ line, re.IGNORECASE
+ )
if match:
# Correct file header
self.status_version = int(match.group(1))
if self.verbose > 1:
- msg = _("Idendified version of status file: %d") % (self.status_version)
+ msg = _("Idendified version of status file: %d") \
+ % (self.status_version)
self.logger.debug(msg)
continue
else:
# Wrong header
- msg = _("Incompatible version of status file '%(file)s': %(header)s") \
+ msg = _("Incompatible version of status file "
+ + "'%(file)s': %(header)s") \
% { 'file': self.file_name, 'header': line }
fd.close()
raise LogrotateStatusFileError(msg)
logfile = parts[0]
rdate = parts[1]
if self.verbose > 2:
- msg = _("Found logfile '%(file)s' with rotation date '%(date)s'.") \
+ msg = _("Found logfile '%(file)s' with rotation "
+ + "date '%(date)s'.") \
% { 'file': logfile, 'date': rdate }
self.logger.debug(msg)
if logfile and rdate:
match = re.search(r'\s*(\d+)[_\-](\d+)[_\-](\d+)(?:[\s\-_]+(\d+)[_\-:](\d+)[_\-:](\d+))?', rdate)
if not match:
- msg = _("Could not determine date format: '%(date)s' (file: '%(file)s', row: %(row)d)") \
- % {'date': rdate, 'file': logfile, 'row': i, }
+ msg = _("Could not determine date format: '%s'.") \
+ % (rdate)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': logfile, 'lnr': i})
self.logger.warning(msg)
continue
d = {
dt = None
try:
- dt = datetime(d['Y'], d['m'], d['d'], d['H'], d['M'], d['S'], tzinfo = utc)
+ dt = datetime(d['Y'], d['m'], d['d'],
+ d['H'], d['M'], d['S'],
+ tzinfo = utc)
except ValueError, e:
- msg = _("Invalid date: '%(date)s' (file: '%(file)s', row: %(row)d)") \
- % {'date': rdate, 'file': logfile, 'row': i, }
+ msg = _("Invalid date: '%s'.") % (rdate)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': logfile, 'lnr': i})
self.logger.warning(msg)
continue
else:
- msg = _("Neither a logfile nor a date found in line '%(line)s' (file: '%(file)s', row: %(row)d)") \
- % {'line': line, 'file': logfile, 'row': i, }
+ msg = _("Neither a logfile nor a date found in line '%s'.") \
+ % (line)
+ msg += " " + ( _("(file '%(file)s', line %(lnr)s)")
+ % {'file': logfile, 'lnr': i})
self.logger.warning(msg)
finally:
msgstr ""
"Project-Id-Version: pylogrotate 0.6.0\n"
"Report-Msgid-Bugs-To: frank@brehm-online.com\n"
-"POT-Creation-Date: 2011-07-14 12:26+0200\n"
+"POT-Creation-Date: 2011-07-14 19:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: LogRotate/Getopts.py:119
+#: LogRotate/Getopts.py:120
#, python-format
msgid "%s [options] <configfile>"
msgstr ""
-#: LogRotate/Config.py:489 LogRotate/Config.py:501 LogRotate/Config.py:511
+#: LogRotate/Config.py:491 LogRotate/Config.py:504 LogRotate/Config.py:515
#, python-format
-msgid "'%s' is not a directory"
+msgid "'%s' is not a directory."
msgstr ""
-#: LogRotate/Config.py:698
+#: LogRotate/Config.py:708
#, python-format
msgid "'%s' is not a regular file."
msgstr ""
-#: LogRotate/Config.py:1305
+#: LogRotate/Config.py:1364
#, python-format
-msgid ""
-"'dateext': first_val: '%(first_val)s', option_value: '%(value)s'. (file "
-"'%(file)s', line %(lnr)s)"
+msgid "'dateext': first_val: '%(first_val)s', option_value: '%(value)s'."
+msgstr ""
+
+#: LogRotate/Config.py:767 LogRotate/Config.py:789 LogRotate/Config.py:813
+#: LogRotate/Config.py:837 LogRotate/Config.py:842 LogRotate/Config.py:847
+#: LogRotate/Config.py:897 LogRotate/Config.py:917 LogRotate/Config.py:940
+#: LogRotate/Config.py:947 LogRotate/Config.py:992 LogRotate/Config.py:1024
+#: LogRotate/Config.py:1039 LogRotate/Config.py:1053 LogRotate/Config.py:1061
+#: LogRotate/Config.py:1068 LogRotate/Config.py:1076 LogRotate/Config.py:1083
+#: LogRotate/Config.py:1126 LogRotate/Config.py:1158 LogRotate/Config.py:1177
+#: LogRotate/Config.py:1267 LogRotate/Config.py:1280 LogRotate/Config.py:1287
+#: LogRotate/Config.py:1303 LogRotate/Config.py:1331 LogRotate/Config.py:1349
+#: LogRotate/Config.py:1366 LogRotate/Config.py:1383 LogRotate/Config.py:1395
+#: LogRotate/Config.py:1412 LogRotate/Config.py:1419 LogRotate/Config.py:1428
+#: LogRotate/Config.py:1437 LogRotate/Config.py:1523 LogRotate/Config.py:1530
+#: LogRotate/Config.py:1592 LogRotate/Config.py:1617 LogRotate/Config.py:1632
+#: LogRotate/Config.py:1646 LogRotate/Config.py:1705 LogRotate/Config.py:1714
+#: LogRotate/Config.py:1723 LogRotate/Config.py:1763 LogRotate/Config.py:1772
+#: LogRotate/Config.py:1781 LogRotate/Config.py:1792 LogRotate/Config.py:1805
+#: LogRotate/Config.py:1814 LogRotate/Config.py:1864 LogRotate/Config.py:1897
+#: LogRotate/Config.py:1904 LogRotate/Config.py:1938
+#: LogRotate/StatusFile.py:496 LogRotate/StatusFile.py:539
+#: LogRotate/StatusFile.py:565 LogRotate/StatusFile.py:576
+#, python-format
+msgid "(file '%(file)s', line %(lnr)s)"
msgstr ""
#: LogRotate/StatusFile.py:467
msgid "Check, whether logfile '%s' should rotated."
msgstr ""
-#: LogRotate/Config.py:1288
-#, python-format
-msgid ""
-"Checking 'dateext', negated: '%(negated)s'. (file '%(file)s', line "
-"%(lnr)s)"
-msgstr ""
-
-#: LogRotate/Config.py:1228
+#: LogRotate/Handler.py:1168
#, python-format
-msgid ""
-"Checking 'period': key '%(key)s', value '%(value)s'. (file '%(file)s', "
-"line %(lnr)s)"
+msgid "Checking file '%s' for deleting ..."
msgstr ""
-#: LogRotate/Handler.py:1168
+#: LogRotate/Config.py:1411 LogRotate/Config.py:1522
#, python-format
-msgid "Checking file '%s' for deleting ..."
+msgid "Checking for option '%s' ..."
msgstr ""
-#: LogRotate/Config.py:1343
+#: LogRotate/Config.py:1348
#, python-format
-msgid "Checking for 'create' ... (file '%(file)s', line %(lnr)s)"
+msgid "Checking for option 'dateext', negated: '%s'."
msgstr ""
-#: LogRotate/Config.py:1446
+#: LogRotate/Config.py:1278
#, python-format
-msgid "Checking for 'olddir' ... (file '%(file)s', line %(lnr)s)"
+msgid "Checking for option 'period': key '%(key)s', value '%(value)s'."
msgstr ""
-#: LogRotate/Config.py:1536
+#: LogRotate/Config.py:1616
#, python-format
-msgid ""
-"Checking for option 'size', value: '%(value)s' ... (file '%(file)s', line"
-" %(lnr)s)"
+msgid "Checking for option 'size', value '%s' ..."
msgstr ""
-#: LogRotate/Config.py:1563
+#: LogRotate/Config.py:1644
#, python-format
-msgid ""
-"Checking for option 'taboo%(type)s', value: '%(value)s' ... (file "
-"'%(file)s', line %(lnr)s)"
+msgid "Checking for option 'taboo%(type)s', value: '%(value)s' ..."
msgstr ""
-#: LogRotate/Config.py:970
+#: LogRotate/Config.py:991
#, python-format
-msgid ""
-"Checking line '%(line)s' for a logrotate option. (file '%(file)s', line "
-"%(lnr)s)"
+msgid "Checking line '%s' for a logrotate option."
msgstr ""
#: LogRotate/StatusFile.py:398
msgid "Checking, whether the script '%s' should be executed."
msgstr ""
-#: LogRotate/Getopts.py:226
+#: LogRotate/Getopts.py:227
msgid ""
"Checks only the given configuration file and does nothing. Conflicts with"
" -f."
#: LogRotate/Script.py:499
#, python-format
-msgid "Child in script '%(name)s' was terminated by signal %(retcode)d"
+msgid "Child in script '%(name)s' was terminated by signal %(retcode)d."
msgstr ""
#: LogRotate/Handler.py:1740
#, python-format
-msgid "Child was terminated by signal %d"
+msgid "Child was terminated by signal %d."
msgstr ""
-#: LogRotate/Getopts.py:254
-msgid "Command to send mail (instead of using the Phyton email package)"
+#: LogRotate/Getopts.py:255
+msgid ""
+"Command to send mail (instead of using SMTP or the predefined sendmail "
+"command)."
msgstr ""
-#: LogRotate/Getopts.py:266
+#: LogRotate/Getopts.py:267
msgid "Common options"
msgstr ""
-#: LogRotate/Config.py:1154
+#: LogRotate/Config.py:1204
#, python-format
msgid "Compress command '%s' not found."
msgstr ""
"'%(cmd)s'."
msgstr ""
+#: LogRotate/Handler.py:2185 LogRotate/Handler.py:2248
#: LogRotate/Handler.py:2319
#, python-format
-msgid "Compressing source '%(source)s' to target'%(target)s' with module bz2."
-msgstr ""
-
-#: LogRotate/Handler.py:2248
-#, python-format
-msgid "Compressing source '%(source)s' to target'%(target)s' with module gzip."
-msgstr ""
-
-#: LogRotate/Handler.py:2185
-#, python-format
-msgid "Compressing source '%(source)s' to target'%(target)s' with module zipfile."
+msgid ""
+"Compressing source '%(source)s' to target'%(target)s' with module "
+"'%(module)s'."
msgstr ""
#: LogRotate/Handler.py:1881
"'%(target)s'."
msgstr ""
-#: LogRotate/Config.py:989
+#: LogRotate/Config.py:1010
#, python-format
msgid "Could not detect option in line '%s'."
msgstr ""
msgid "Could not determine bytes in '%s'."
msgstr ""
-#: LogRotate/StatusFile.py:529
+#: LogRotate/StatusFile.py:537
#, python-format
-msgid ""
-"Could not determine date format: '%(date)s' (file: '%(file)s', row: "
-"%(row)d)"
+msgid "Could not determine date format: '%s'."
msgstr ""
#: LogRotate/StatusFile.py:319
msgid "Could not open status file '%s' for write: "
msgstr ""
-#: LogRotate/Handler.py:345
-msgid "Could not read configuration"
-msgstr ""
-
-#: LogRotate/Config.py:708
+#: LogRotate/Config.py:718
#, python-format
msgid "Could not read configuration file '%s'"
msgstr ""
+#: LogRotate/Handler.py:345
+msgid "Could not read configuration."
+msgstr ""
+
#: LogRotate/StatusFile.py:483
#, python-format
msgid "Could not read status file '%s': "
#: LogRotate/Handler.py:1817
#, python-format
-msgid "Date of last rotation: %s"
+msgid "Date of last rotation: %s."
msgstr ""
#: LogRotate/Handler.py:1834
#: LogRotate/Handler.py:1821
#, python-format
-msgid "Date of next rotation: %s"
+msgid "Date of next rotation: %s."
msgstr ""
#: LogRotate/Handler.py:1179
msgid "Deletion of all superfluid logfiles ..."
msgstr ""
-#: LogRotate/Config.py:1851
+#: LogRotate/Config.py:1936
#, python-format
-msgid ""
-"Directive '%(directive)s' is not allowed outside of a logfile definition."
-" (file '%(file)s', line %(lnr)s)"
+msgid "Directive '%s' is not allowed outside of a logfile definition."
msgstr ""
#: LogRotate/Handler.py:1650
#: LogRotate/Handler.py:1627
#, python-format
-msgid "Directory chain to create: '%s'"
+msgid "Directory chain to create: '%s'."
msgstr ""
-#: LogRotate/Getopts.py:279
+#: LogRotate/Getopts.py:280
msgid "Display brief usage message and exit."
msgstr ""
msgid "Do rotate logfile '%s' ..."
msgstr ""
-#: LogRotate/Getopts.py:206
+#: LogRotate/Getopts.py:207
msgid "Don't do anything, just test (implies -v and -T)"
msgstr ""
-#: LogRotate/Config.py:827
-#, python-format
-msgid "End of a logfile definition (file '%(file)s', line %(line)s)"
-msgstr ""
-
-#: LogRotate/Handler.py:986
-#, python-format
-msgid "Error on chmod of '%(file)s': %(err)s"
+#: LogRotate/Config.py:841
+msgid "End of a logfile definition."
msgstr ""
-#: LogRotate/Handler.py:2130
+#: LogRotate/Handler.py:986 LogRotate/Handler.py:2130
#, python-format
msgid "Error on chmod of '%(target)s': %(err)s"
msgstr ""
#: LogRotate/Handler.py:1729
#, python-format
-msgid "Executing command: '%s'"
+msgid "Executing command: '%s'."
msgstr ""
#: LogRotate/Handler.py:759
msgid "Execution of script '%(name)s' failed: %(error)s"
msgstr ""
-#: LogRotate/Config.py:1540
+#: LogRotate/Config.py:1621
msgid "Failing size definition."
msgstr ""
-#: LogRotate/Config.py:670 LogRotate/Config.py:695
+#: LogRotate/Config.py:680 LogRotate/Config.py:705
#, python-format
msgid "File '%s' doesn't exists."
msgstr ""
#: LogRotate/Handler.py:1795
#, python-format
-msgid "Filesize of '%(file)s': %(size)d"
+msgid "Filesize of '%(file)s': %(size)d."
msgstr ""
-#: LogRotate/Config.py:1999
+#: LogRotate/Config.py:2079
#, python-format
msgid "Find all logfiles for shell matching pattern '%s' ..."
msgstr ""
-#: LogRotate/Getopts.py:216
+#: LogRotate/Getopts.py:217
msgid "Force file rotation"
msgstr ""
msgid "Found invalid mail address '%s'."
msgstr ""
-#: LogRotate/Config.py:2012
+#: LogRotate/Config.py:2093
#, python-format
msgid "Found logfile '%(file)s for pattern '%(pattern)s'."
msgstr ""
-#: LogRotate/StatusFile.py:522
+#: LogRotate/StatusFile.py:529
#, python-format
msgid "Found logfile '%(file)s' with rotation date '%(date)s'."
msgstr ""
msgid "Found old logfiles:"
msgstr ""
-#: LogRotate/Config.py:993
+#: LogRotate/Config.py:1015
#, python-format
msgid "Found option '%(opt)s' with value '%(val)s'."
msgstr ""
msgid "Found rotations:"
msgstr ""
-#: LogRotate/Config.py:920
-#, python-format
-msgid ""
-"Found start of a external script definition. (file '%(file)s', line "
-"%(line)s)"
+#: LogRotate/Config.py:939
+msgid "Found start of a external script definition."
msgstr ""
-#: LogRotate/Config.py:899
+#: LogRotate/Config.py:915
#, python-format
msgid ""
"Found start of a regular script definition: type: '%(type)s', name: "
-"'%(name)s' (file '%(file)s', line %(line)s)"
+"'%(name)s'."
msgstr ""
-#: LogRotate/Config.py:1015
+#: LogRotate/Config.py:1036
#, python-format
-msgid ""
-"Found value '%(value)s' behind the boolean option '%(option)s', ignoring."
-" (file '%(file)s', line %(lnr)s)"
+msgid "Found value '%(value)s' behind the boolean option '%(option)s', ignoring."
msgstr ""
#: LogRotate/Mailer.py:567
msgstr ""
#: LogRotate/Common.py:299
-msgid "Given period was empty"
+msgid "Given period was empty."
msgstr ""
#: LogRotate/Common.py:193
msgid "Given value is 'None'."
msgstr ""
-#: LogRotate/Config.py:1550
+#: LogRotate/Config.py:1630
#, python-format
-msgid ""
-"Got a rotation size in '%(directive)s' of %(bytes)d bytes. (file "
-"'%(file)s', line %(lnr)s)"
+msgid "Got a rotation size in '%(directive)s' of %(bytes)d bytes."
msgstr ""
#: LogRotate/Common.py:472
#: LogRotate/Handler.py:1737
#, python-format
-msgid "Got returncode: '%s'"
+msgid "Got returncode: '%s'."
msgstr ""
#: LogRotate/Mailer.py:535
msgid "Handler object structure"
msgstr ""
-#: LogRotate/StatusFile.py:505
+#: LogRotate/StatusFile.py:510
#, python-format
msgid "Idendified version of status file: %d"
msgstr ""
-#: LogRotate/Config.py:1739
+#: LogRotate/Config.py:1820
#, python-format
msgid "Including directory '%s' ..."
msgstr ""
-#: LogRotate/Config.py:1746
+#: LogRotate/Config.py:1828
#, python-format
msgid "Including item '%(item)s' ('%(path)s') ..."
msgstr ""
-#: LogRotate/Config.py:1702
+#: LogRotate/Config.py:1780
#, python-format
-msgid ""
-"Including object '%(include)s' doesn't exists. (file '%(file)s', line "
-"%(lnr)s)"
+msgid "Including object '%s' doesn't exists."
msgstr ""
-#: LogRotate/Config.py:1712
+#: LogRotate/Config.py:1790
#, python-format
-msgid ""
-"Including object '%(include)s' is neither a regular file nor a "
-"directory. (file '%(file)s', line %(lnr)s)"
+msgid "Including object '%s' is neither a regular file nor a directory."
msgstr ""
-#: LogRotate/StatusFile.py:510
+#: LogRotate/StatusFile.py:516
#, python-format
msgid "Incompatible version of status file '%(file)s': %(header)s"
msgstr ""
msgid "Initial search for the sendmail executable ..."
msgstr ""
-#: LogRotate/Config.py:1195 LogRotate/Config.py:1199
+#: LogRotate/Config.py:1246 LogRotate/Config.py:1250
#, python-format
msgid "Invalid SMTP port '%s' given."
msgstr ""
msgid "Invalid content for a period: '%s'."
msgstr ""
-#: LogRotate/Config.py:1487
+#: LogRotate/Config.py:1565
#, python-format
msgid "Invalid create mode '%s' in 'olddir'."
msgstr ""
-#: LogRotate/Config.py:1393
+#: LogRotate/Config.py:1466
#, python-format
msgid "Invalid create mode '%s'."
msgstr ""
-#: LogRotate/StatusFile.py:552
+#: LogRotate/StatusFile.py:564
#, python-format
-msgid "Invalid date: '%(date)s' (file: '%(file)s', row: %(row)d)"
+msgid "Invalid date: '%s'."
msgstr ""
-#: LogRotate/Config.py:1546
+#: LogRotate/Config.py:1627
#, python-format
msgid "Invalid definition for 'size': '%s'."
msgstr ""
-#: LogRotate/Config.py:1427
+#: LogRotate/Config.py:1502 LogRotate/Config.py:1600
#, python-format
-msgid "Invalid group '%s' in 'create'."
+msgid "Invalid group '%(group)s' in '%(what)s'."
msgstr ""
-#: LogRotate/Config.py:1521
-#, python-format
-msgid "Invalid group '%s' in 'olddir'."
-msgstr ""
-
-#: LogRotate/Config.py:1186
+#: LogRotate/Config.py:1237
#, python-format
msgid "Invalid mail address for 'mailfrom' given: '%s'."
msgstr ""
msgid "Invalid mail address given: '%s'."
msgstr ""
-#: LogRotate/Config.py:1266
+#: LogRotate/Config.py:1322
#, python-format
msgid "Invalid maxage definition: '%s'"
msgstr ""
-#: LogRotate/Config.py:1410
-#, python-format
-msgid "Invalid owner '%s' in 'create'."
-msgstr ""
-
-#: LogRotate/Config.py:1504
+#: LogRotate/Config.py:1483 LogRotate/Config.py:1582
#, python-format
-msgid "Invalid owner '%s' in 'olddir'."
+msgid "Invalid owner '%(owner)s' in '%(what)s'."
msgstr ""
-#: LogRotate/Config.py:1243
+#: LogRotate/Config.py:1294
#, python-format
-msgid "Invalid period definition: '%s'"
+msgid "Invalid period definition: '%s'."
msgstr ""
#: LogRotate/Config.py:456
#, python-format
-msgid "Invalid taboo pattern type '%s' given"
+msgid "Invalid taboo pattern type '%s' given."
msgstr ""
-#: LogRotate/Getopts.py:319
+#: LogRotate/Getopts.py:320
msgid "Invalid usage of --force and --config-check."
msgstr ""
msgid "Invalid value for property '%s' given."
msgstr ""
-#: LogRotate/Config.py:1768
+#: LogRotate/Config.py:1852
#, python-format
msgid "Item '%(item)s' is matching pattern '%(pattern)s', skiping."
msgstr ""
-#: LogRotate/Config.py:1758
+#: LogRotate/Config.py:1842
#, python-format
msgid "Item '%s' is not a regular file."
msgstr ""
-#: LogRotate/Config.py:866
+#: LogRotate/Config.py:882
#, python-format
msgid "Lastaction script '%s' not found."
msgstr ""
-#: LogRotate/Config.py:2017
+#: LogRotate/Config.py:2099
#, python-format
msgid ""
"Logfile '%(logfile)s' is even defined (file '%(cfgfile)s', row "
"%(rownum)d) and so not taken a second time."
msgstr ""
+#: LogRotate/Handler.py:713
+#, python-format
+msgid "Logfile '%s' WILL rotated."
+msgstr ""
+
+#: LogRotate/Handler.py:1780
+#, python-format
+msgid "Logfile '%s' doesn't exists, not rotated."
+msgstr ""
+
#: LogRotate/Handler.py:1801
#, python-format
-msgid "Logfile '%s' has a filesize of Zero, not rotated"
+msgid "Logfile '%s' has a filesize of Zero, not rotated."
msgstr ""
-#: LogRotate/Config.py:2026
+#: LogRotate/Handler.py:1789
#, python-format
-msgid "Logfile '%s' will taken."
+msgid "Logfile '%s' is not a regular file, not rotated."
msgstr ""
-#: LogRotate/Config.py:774
+#: LogRotate/Handler.py:715
#, python-format
-msgid ""
-"Logfile pattern definition not allowed inside a logfile definition (file "
-"'%(file)s', line %(line)s)"
+msgid "Logfile '%s' will NOT rotated."
msgstr ""
-#: LogRotate/Config.py:339
-msgid "Logrotate config reader initialised"
+#: LogRotate/Config.py:2109
+#, python-format
+msgid "Logfile '%s' will taken."
+msgstr ""
+
+#: LogRotate/Config.py:787
+msgid "Logfile pattern definition not allowed inside a logfile definition."
+msgstr ""
+
+#: LogRotate/Config.py:338
+msgid "Logrotate config reader initialised."
msgstr ""
#: LogRotate/Script.py:405
msgstr ""
#: LogRotate/Handler.py:342
-msgid "Logrotating initialised"
+msgid "Logrotating initialised."
msgstr ""
#: LogRotate/Handler.py:357
-msgid "Logrotating ready for work"
+msgid "Logrotating ready for work."
msgstr ""
#: LogRotate/Handler.py:756
msgid "Name of state file: '%s'"
msgstr ""
-#: LogRotate/Config.py:830
+#: LogRotate/Config.py:845
#, python-format
-msgid ""
-"Needless content found at the end of a logfile definition found: "
-"'%(rest)s' (file '%(file)s', line %(line)s)"
+msgid "Needless content found at the end of a logfile definition found: '%s'."
msgstr ""
-#: LogRotate/Config.py:1077
+#: LogRotate/Config.py:1114
#, python-format
msgid "Negative value %(value)s for option '%(option)s' is not allowed."
msgstr ""
"_copy_file_metadata()."
msgstr ""
-#: LogRotate/StatusFile.py:561
+#: LogRotate/StatusFile.py:574
#, python-format
-msgid ""
-"Neither a logfile nor a date found in line '%(line)s' (file: '%(file)s', "
-"row: %(row)d)"
+msgid "Neither a logfile nor a date found in line '%s'."
msgstr ""
-#: LogRotate/Config.py:1812
-#, python-format
-msgid ""
-"Nested logfile definitions are not allowed. (file '%(file)s', line "
-"%(lnr)s)"
+#: LogRotate/Config.py:1896
+msgid "Nested logfile definitions are not allowed."
msgstr ""
-#: LogRotate/Config.py:936
+#: LogRotate/Config.py:957
#, python-format
msgid "New external script name: '%s'."
msgstr ""
-#: LogRotate/Config.py:913
+#: LogRotate/Config.py:931
#, python-format
msgid "New log script name: '%s'."
msgstr ""
-#: LogRotate/Config.py:852
+#: LogRotate/Config.py:868
msgid "New logfile definition:"
msgstr ""
-#: LogRotate/Config.py:460
+#: LogRotate/Config.py:461
#, python-format
msgid "New taboo pattern: '%s'."
msgstr ""
msgid "No compression defined."
msgstr ""
-#: LogRotate/Getopts.py:323
+#: LogRotate/Getopts.py:324
msgid "No configuration file given."
msgstr ""
msgid "No execute permissions to '%s'."
msgstr ""
-#: LogRotate/Config.py:843
+#: LogRotate/Config.py:859
#, python-format
msgid ""
"No extension for compressed logfiles given (File of definition: "
"'%(file)s', start definition: %(rownum)d)."
msgstr ""
-#: LogRotate/Config.py:1685
-#, python-format
-msgid ""
-"No file or directory given in a include directive (file '%(file)s', line "
-"%(lnr)s)"
+#: LogRotate/Config.py:1762
+msgid "No file or directory given in a include directive."
msgstr ""
#: LogRotate/Handler.py:649
msgid "No logfile definitions found."
msgstr ""
-#: LogRotate/Config.py:2004
+#: LogRotate/Config.py:2085
#, python-format
msgid "No logfile found for pattern '%s'."
msgstr ""
-#: LogRotate/Config.py:1818
-#, python-format
-msgid ""
-"No logfile pattern defined on starting a logfile definition. (file "
-"'%(file)s', line %(lnr)s)"
+#: LogRotate/Config.py:1902
+msgid "No logfile pattern defined on starting a logfile definition."
msgstr ""
-#: LogRotate/Config.py:1993
+#: LogRotate/Config.py:2073
msgid "No logfile pattern defined."
msgstr ""
msgid "No permission to signal the process %d ..."
msgstr ""
-#: LogRotate/Config.py:1622
-#, python-format
-msgid ""
-"No script name given in a script directive. (file '%(file)s', line "
-"%(lnr)s)"
+#: LogRotate/Config.py:1704
+msgid "No script name given in a script directive."
msgstr ""
#: LogRotate/Handler.py:576
#: LogRotate/Handler.py:1597
#, python-format
-msgid "Olddir name is now '%s'"
+msgid "Olddir name is now '%s'."
msgstr ""
#: LogRotate/Mailer.py:273
msgid "Only absolute path allowed for a sendmail command: '%s'."
msgstr ""
-#: LogRotate/Getopts.py:327
+#: LogRotate/Getopts.py:328
msgid "Only one configuration file is allowed."
msgstr ""
-#: LogRotate/Config.py:1693
-#, python-format
+#: LogRotate/Config.py:1770
msgid ""
"Only one declaration of a file or directory is allowed in a include "
-"directive, the first one is used. (file '%(file)s', line %(lnr)s)"
+"directive, the first one is used."
msgstr ""
-#: LogRotate/Config.py:1630
-#, python-format
+#: LogRotate/Config.py:1712
msgid ""
"Only one script name is allowed in a script directive, the first one is "
-"used. (file '%(file)s', line %(lnr)s)"
+"used."
msgstr ""
#: LogRotate/Handler.py:994 LogRotate/Handler.py:1690 LogRotate/Handler.py:2147
msgid "Open status file '%s' for writing ..."
msgstr ""
-#: LogRotate/Config.py:1071
+#: LogRotate/Config.py:1059 LogRotate/Config.py:1066 LogRotate/Config.py:1074
+#: LogRotate/Config.py:1081
#, python-format
-msgid "Option '%(option)s' has no integer value: %(msg)s."
-msgstr ""
-
-#: LogRotate/Config.py:1235
-#, python-format
-msgid ""
-"Option '%(option)s' may not have a value ('%(value)s'). (file '%(file)s',"
-" line %(lnr)s)"
-msgstr ""
-
-#: LogRotate/Config.py:1147 LogRotate/Config.py:1172
-#, python-format
-msgid "Option '%s' must have a value."
-msgstr ""
-
-#: LogRotate/Config.py:1168
-#, python-format
-msgid "Option '%s' not allowed inside a logfile directive."
-msgstr ""
-
-#: LogRotate/Config.py:1062
-#, python-format
-msgid "Option '%s' without a necessary value."
+msgid "Option '%(by)s' disables option '%(what)'."
msgstr ""
-#: LogRotate/Config.py:1149 LogRotate/Config.py:1174
+#: LogRotate/Config.py:1108
#, python-format
-msgid "Option '%s' without a value"
+msgid "Option '%(option)s' has no integer value: %(msg)s."
msgstr ""
-#: LogRotate/Config.py:1030
+#: LogRotate/Config.py:1285
#, python-format
-msgid ""
-"Option 'copy' disables option 'copytruncate'. (file '%(file)s', line "
-"%(lnr)s)"
+msgid "Option '%(option)s' may not have a value ('%(value)s')."
msgstr ""
-#: LogRotate/Config.py:1035
+#: LogRotate/Config.py:1099 LogRotate/Config.py:1195 LogRotate/Config.py:1223
#, python-format
-msgid "Option 'copy' disables option 'create'. (file '%(file)s', line %(lnr)s)"
+msgid "Option '%s' must have a value."
msgstr ""
-#: LogRotate/Config.py:1357
+#: LogRotate/Config.py:1219
#, python-format
-msgid ""
-"Option 'copy' was set, so option 'create' has no effect. (file "
-"'%(file)s', line %(lnr)s)"
+msgid "Option '%s' not allowed inside a logfile directive."
msgstr ""
-#: LogRotate/Config.py:1041
+#: LogRotate/Config.py:1426 LogRotate/Config.py:1435
#, python-format
-msgid ""
-"Option 'copytruncate' disables option 'copy'. (file '%(file)s', line "
-"%(lnr)s)"
+msgid "Option '%s' was set, so option 'create' has no effect."
msgstr ""
-#: LogRotate/Config.py:1046
+#: LogRotate/Config.py:1542
#, python-format
-msgid ""
-"Option 'copytruncate' disables option 'create'. (file '%(file)s', line "
-"%(lnr)s)"
+msgid "Option '%s' without a value given."
msgstr ""
-#: LogRotate/Config.py:1364
+#: LogRotate/Config.py:1198 LogRotate/Config.py:1225
#, python-format
-msgid ""
-"Option 'copytruncate' was set, so option 'create' has no effect. (file "
-"'%(file)s', line %(lnr)s)"
-msgstr ""
-
-#: LogRotate/Config.py:1465
-msgid "Option 'olddir' without a value given."
+msgid "Option '%s' without a value."
msgstr ""
-#: LogRotate/Config.py:1581
+#: LogRotate/Config.py:1664
#, python-format
msgid "Option 'taboo%s' needs a value."
msgstr ""
-#: LogRotate/Config.py:1568
+#: LogRotate/Config.py:1651
#, python-format
msgid "Option 'taboo%s' not allowed inside a logfile directive."
msgstr ""
msgid "Parent directory '%(dir)s' of status file '%(file)s' is not a directory."
msgstr ""
-#: LogRotate/Getopts.py:245
+#: LogRotate/Getopts.py:246
msgid "Path of PID file (different to configuration)"
msgstr ""
-#: LogRotate/Getopts.py:236
+#: LogRotate/Getopts.py:237
msgid "Path of state file (different to configuration)"
msgstr ""
#: LogRotate/StatusFile.py:494
#, python-format
-msgid "Performing status file line '%(line)s' (file: '%(file)s', row: %(row)d)"
+msgid "Performing status file line '%s'."
msgstr ""
#: LogRotate/StatusFile.py:430
msgid "Permissions to parent directory '%s' are OK."
msgstr ""
-#: LogRotate/Config.py:859
+#: LogRotate/Config.py:875
#, python-format
msgid "Postrotate script '%s' not found."
msgstr ""
msgid "Reading PID file '%s' ..."
msgstr ""
-#: LogRotate/Config.py:702
+#: LogRotate/Config.py:712
#, python-format
msgid "Reading configuration from '%s' ..."
msgstr ""
msgid "Recreating file '%s'."
msgstr ""
-#: LogRotate/Config.py:1779
-#, python-format
-msgid "Recursive including of '%(include)s' (file '%(file)s', line %(lnr)s)"
-msgstr ""
-
-#: LogRotate/Config.py:1724
-#, python-format
-msgid "Recursive including of '%(include)s'. (file '%(file)s', line %(lnr)s)"
-msgstr ""
-
-#: LogRotate/Config.py:1350
+#: LogRotate/Config.py:1804 LogRotate/Config.py:1863
#, python-format
-msgid "Removing 'create'. (file '%(file)s', line %(lnr)s)"
+msgid "Recursive including of '%s'."
msgstr ""
-#: LogRotate/Config.py:1453
+#: LogRotate/Config.py:1418 LogRotate/Config.py:1529
#, python-format
-msgid "Removing 'olddir'. (file '%(file)s', line %(lnr)s)"
+msgid "Removing '%s'."
msgstr ""
#: LogRotate/Handler.py:432
msgid "Removing PID file '%s' ..."
msgstr ""
-#: LogRotate/Config.py:398
+#: LogRotate/Config.py:397
msgid "Resetting default values for directives to hard coded values"
msgstr ""
msgid "Retrieving the name of the rotated file of '%s' ..."
msgstr ""
-#: LogRotate/Getopts.py:113
+#: LogRotate/Getopts.py:114
msgid "Rotates, compresses and mails system logs."
msgstr ""
msgid "Rotating of logfile definition:"
msgstr ""
-#: LogRotate/Config.py:1638
+#: LogRotate/Config.py:1721
#, python-format
-msgid ""
-"Script name '%(name)s' is allready declared, it will be overwritten. "
-"(file '%(file)s', line %(lnr)s)"
+msgid "Script name '%s' is allready declared, it will be overwritten."
msgstr ""
#: LogRotate/Handler.py:1338
msgid "Search for pattern '%s' ..."
msgstr ""
-#: LogRotate/Config.py:560 LogRotate/Config.py:620
+#: LogRotate/Config.py:630
#, python-format
msgid "Search path '%s' doesn't exists or is not a directory"
msgstr ""
+#: LogRotate/Config.py:565
+#, python-format
+msgid "Search path '%s' doesn't exists or is not a directory."
+msgstr ""
+
#: LogRotate/Mailer.py:508
#, python-format
msgid "Sending mail with attached file '%(file)s' to: %(rcpt)s"
msgid "Sendmail command '%s' not found."
msgstr ""
-#: LogRotate/Config.py:1097 LogRotate/Config.py:1134
+#: LogRotate/Config.py:1140 LogRotate/Config.py:1181
#, python-format
msgid "Senseless option value '%(value)s' after '%(option)s'."
msgstr ""
msgid "Set sender mail address to: '%s'."
msgstr ""
-#: LogRotate/Config.py:1318
-#, python-format
-msgid ""
-"Setting 'dateext' in '%(directive)s' to %(ext)s. (file '%(file)s', line "
-"%(lnr)s)"
+#: LogRotate/Getopts.py:197
+msgid "Set the verbosity level"
msgstr ""
-#: LogRotate/Config.py:1326
-#, python-format
-msgid ""
-"Setting 'datepattern' in '%(directive)s' to '%(pattern)s'. (file "
-"'%(file)s', line %(lnr)s)"
+#: LogRotate/Getopts.py:186
+msgid "Set this do simulate commands"
msgstr ""
-#: LogRotate/Config.py:1270
+#: LogRotate/Config.py:1298 LogRotate/Config.py:1326
#, python-format
-msgid ""
-"Setting 'maxage' in '%(directive)s' to %(days)f days. (file '%(file)s', "
-"line %(lnr)s)"
+msgid "Setting '%(what)s' in '%(directive)s' to %(to)f days."
msgstr ""
-#: LogRotate/Config.py:1247
+#: LogRotate/Config.py:1378 LogRotate/Config.py:1390
#, python-format
-msgid ""
-"Setting 'period' in '%(directive)s' to %(days)f days. (file '%(file)s', "
-"line %(lnr)s)"
+msgid "Setting '%(what)s' in '%(directive)s' to %(to)s."
msgstr ""
#: LogRotate/Handler.py:2108
msgid "Setting atime and mtime of target '%s'."
msgstr ""
-#: LogRotate/Config.py:1024
+#: LogRotate/Config.py:1047
#, python-format
-msgid ""
-"Setting boolean option '%(option)s' in '%(directive)s' to '%(value)s'. "
-"(file '%(file)s', line %(lnr)s)"
+msgid "Setting boolean option '%(option)s' in '%(directive)s' to '%(value)s'."
msgstr ""
-#: LogRotate/Config.py:1215
+#: LogRotate/Config.py:1265
#, python-format
-msgid ""
-"Setting global option '%(option)s' to '%(value)s'. (file '%(file)s', line"
-" %(lnr)s)"
+msgid "Setting global option '%(option)s' to '%(value)s'."
msgstr ""
-#: LogRotate/Config.py:1083
+#: LogRotate/Config.py:1120
#, python-format
-msgid ""
-"Setting integer option '%(option)s' in '%(directive)s' to '%(value)s'. "
-"(file '%(file)s', line %(lnr)s)"
+msgid "Setting integer option '%(option)s' in '%(directive)s' to '%(value)s'."
msgstr ""
-#: LogRotate/Config.py:1109
+#: LogRotate/Config.py:1152
#, python-format
-msgid ""
-"Setting mail address in '%(directive)s' to '%(addr)s'. (file '%(file)s', "
-"line %(lnr)s)"
+msgid "Setting mail address in '%(directive)s' to '%(addr)s'."
msgstr ""
-#: LogRotate/Config.py:1129
+#: LogRotate/Config.py:1172
#, python-format
-msgid ""
-"Setting mailfirst in '%(directive)s' to '%(value)s'. (file '%(file)s', "
-"line %(lnr)s)"
+msgid "Setting mailfirst in '%(directive)s' to '%(value)s'."
msgstr ""
#: LogRotate/Handler.py:1000
msgid "Setting ownership of '%(file)s' to uid %(uid)d and gid %(gid)d."
msgstr ""
-#: LogRotate/Handler.py:979
-#, python-format
-msgid "Setting permissions of '%(file)s' to %(mode)4o."
-msgstr ""
-
-#: LogRotate/Handler.py:2123
+#: LogRotate/Handler.py:979 LogRotate/Handler.py:2123
#, python-format
msgid "Setting permissions of '%(target)s' to %(mode)4o."
msgstr ""
msgid "Setting rotation date of '%(file)s' to '%(date)s' ..."
msgstr ""
-#: LogRotate/Getopts.py:268
+#: LogRotate/Getopts.py:269
msgid "Shows a help message and exit."
msgstr ""
-#: LogRotate/Getopts.py:288
+#: LogRotate/Getopts.py:289
msgid "Shows the version number of the program and exit."
msgstr ""
-#: LogRotate/Config.py:563
+#: LogRotate/Config.py:571
#, python-format
-msgid "Shred command found: '%s'"
+msgid "Shred command found: '%s'."
msgstr ""
-#: LogRotate/Config.py:567
-msgid "Shred command not found, shred disabled"
+#: LogRotate/Config.py:576
+msgid "Shred command not found, shred disabled."
msgstr ""
-#: LogRotate/Config.py:1753
+#: LogRotate/Config.py:1835
#, python-format
msgid "Skip subdirectory '%s' in including."
msgstr ""
msgid "Source file '%s' for compression doesn't exists."
msgstr ""
-#: LogRotate/Config.py:791
+#: LogRotate/Config.py:805
#, python-format
msgid "Split into parts of: '%s'"
msgstr ""
msgid "Stage 5: compression of old log files"
msgstr ""
-#: LogRotate/Config.py:754
-#, python-format
-msgid "Starting a logfile definition (file '%(file)s', line %(line)s)"
+#: LogRotate/Config.py:766
+msgid "Starting a logfile definition."
msgstr ""
-#: LogRotate/Config.py:1930
+#: LogRotate/Config.py:2009
msgid "Starting a new log directive with default values."
msgstr ""
msgid "Substituting '{}' in compressoptions with '%s'."
msgstr ""
-#: LogRotate/Config.py:941
+#: LogRotate/Config.py:963
#, python-format
msgid "Syntax error in file '%(file)s', line %(line)s"
msgstr ""
-#: LogRotate/Config.py:926
-#, python-format
+#: LogRotate/Config.py:945
msgid ""
"Syntax error: external script definition may not appear inside of a log "
-"file definition (file '%(file)s', line %(line)s)"
+"file definition."
msgstr ""
-#: LogRotate/Config.py:880
-#, python-format
-msgid ""
-"Syntax error: include may not appear inside of log file definition (file "
-"'%(file)s', line %(line)s)"
+#: LogRotate/Config.py:895
+msgid "Syntax error: include may not appear inside of log file definition."
msgstr ""
-#: LogRotate/Config.py:798
-#, python-format
-msgid ""
-"Syntax error: open curly bracket inside a logfile pattern definition "
-"(file '%(file)s', line %(line)s)"
+#: LogRotate/Config.py:811
+msgid "Syntax error: open curly bracket inside alogfile pattern definition."
msgstr ""
-#: LogRotate/Config.py:822
-#, python-format
-msgid ""
-"Syntax error: unbalanced closing curly bracket found (file '%(file)s', "
-"line %(line)s)"
+#: LogRotate/Config.py:836
+msgid "Syntax error: unbalanced closing curly bracket found."
msgstr ""
#: LogRotate/Handler.py:2005
msgid "Truncating file '%s'."
msgstr ""
-#: LogRotate/Config.py:692
+#: LogRotate/Config.py:702
#, python-format
msgid "Try reading configuration from '%s' ..."
msgstr ""
msgid "Trying check for process with PID %d ..."
msgstr ""
-#: LogRotate/Config.py:1418
+#: LogRotate/Config.py:1493
#, python-format
msgid ""
"Trying to determine create group '%(group)s'... (file '%(file)s', line "
"%(lnr)s)"
msgstr ""
-#: LogRotate/Config.py:1384
+#: LogRotate/Config.py:1457
#, python-format
msgid ""
"Trying to determine create mode '%(mode)s'... (file '%(file)s', line "
"%(lnr)s)"
msgstr ""
-#: LogRotate/Config.py:1401
+#: LogRotate/Config.py:1474
#, python-format
msgid ""
"Trying to determine create owner '%(owner)s'... (file '%(file)s', line "
"%(lnr)s)"
msgstr ""
-#: LogRotate/Config.py:1478
+#: LogRotate/Config.py:1556
#, python-format
msgid ""
"Trying to determine olddir create mode '%(mode)s' ... (file '%(file)s', "
"line %(lnr)s)"
msgstr ""
-#: LogRotate/Config.py:1512
+#: LogRotate/Config.py:1591
#, python-format
-msgid ""
-"Trying to determine olddir group '%(group)s' ... (file '%(file)s', line "
-"%(lnr)s)"
+msgid "Trying to determine olddir group '%s' ..."
msgstr ""
-#: LogRotate/Config.py:1495
+#: LogRotate/Config.py:1573
#, python-format
msgid ""
"Trying to determine olddir owner '%(owner)s' ... (file '%(file)s', line "
"%(lnr)s)"
msgstr ""
-#: LogRotate/Config.py:1718
+#: LogRotate/Config.py:1798
#, python-format
msgid "Trying to include object '%s' ..."
msgstr ""
msgid "Unknown error: '%s'"
msgstr ""
-#: LogRotate/Config.py:1592
+#: LogRotate/Config.py:1675
#, python-format
msgid "Unknown option '%s'."
msgstr ""
-#: LogRotate/Config.py:1002
+#: LogRotate/Config.py:1023
#, python-format
-msgid "Unsupported option '%(option)s'. (file '%(file)s', line %(lnr)s)"
+msgid "Unsupported option '%s'."
msgstr ""
#: LogRotate/Handler.py:1515
msgid "Using date extension '.%(ext)s' from pattern '%(pattern)s'."
msgstr ""
-#: LogRotate/Common.py:319
+#: LogRotate/Common.py:201 LogRotate/Common.py:319
#, python-format
msgid "Using radix '%s'."
msgstr ""
-#: LogRotate/Config.py:1179
+#: LogRotate/Config.py:1230
#, python-format
msgid "Value '%(value)s' for option '%(option)s' is not an absolute path."
msgstr ""
msgid "Verbose mode is ON on level: %d"
msgstr ""
-#: LogRotate/Config.py:1733
+#: LogRotate/Config.py:1813
#, python-format
-msgid "What the hell is this: '%(include)s'. (file '%(file)s', line %(lnr)s)"
+msgid "What the hell is this: '%s'."
msgstr ""
#: LogRotate/Handler.py:621
msgid "[%(date)s]: %(prog)s is starting logrotation."
msgstr ""
-#: LogRotate/Handler.py:713
-#, python-format
-msgid "logfile '%s' WILL rotated."
-msgstr ""
-
-#: LogRotate/Handler.py:1780
-#, python-format
-msgid "logfile '%s' doesn't exists, not rotated"
-msgstr ""
-
-#: LogRotate/Handler.py:1789
-#, python-format
-msgid "logfile '%s' is not a regular file, not rotated"
-msgstr ""
-
-#: LogRotate/Handler.py:715
-#, python-format
-msgid "logfile '%s' will NOT rotated."
-msgstr ""
-
-#: LogRotate/Getopts.py:196
-msgid "set the verbosity level"
-msgstr ""
-
-#: LogRotate/Getopts.py:185
-msgid "set this do simulate commands"
-msgstr ""
-
-#: LogRotate/Common.py:201
-#, python-format
-msgid "using radix '%s'."
-msgstr ""
-