implement borgmajor/minor/patch placeholders, fixes #1694

This commit is contained in:
Thomas Waldmann 2016-10-21 03:43:38 +02:00
parent bd9f6a6ff9
commit d49a782796
3 changed files with 28 additions and 4 deletions

View File

@ -1,3 +1,11 @@
# This is a python package import re
from ._version import version as __version__ from ._version import version as __version__
version_re = r'(\d+)\.(\d+)\.(\d+)'
m = re.match(version_re, __version__)
if m:
__version_tuple__ = tuple(map(int, m.groups()))
else:
raise RuntimeError("Can't parse __version__: %r" % __version__)

View File

@ -949,7 +949,19 @@ class Archiver:
{borgversion} {borgversion}
The version of borg. The version of borg, e.g.: 1.0.8rc1
{borgmajor}
The version of borg, only the major version, e.g.: 1
{borgminor}
The version of borg, only major and minor version, e.g.: 1.0
{borgpatch}
The version of borg, only major, minor and patch version, e.g.: 1.0.8
Examples:: Examples::
@ -1229,8 +1241,8 @@ class Archiver:
'.checkpoint.N' (with N being a number), because these names are used for '.checkpoint.N' (with N being a number), because these names are used for
checkpoints and treated in special ways. checkpoints and treated in special ways.
In the archive name, you may use the following format tags: In the archive name, you may use the following placeholders:
{now}, {utcnow}, {fqdn}, {hostname}, {user}, {pid}, {borgversion} {now}, {utcnow}, {fqdn}, {hostname}, {user} and some others.
To speed up pulling backups over sshfs and similar network file systems which do To speed up pulling backups over sshfs and similar network file systems which do
not provide correct inode information the --ignore-inode flag can be used. This not provide correct inode information the --ignore-inode flag can be used. This

View File

@ -28,6 +28,7 @@ from fnmatch import translate
from operator import attrgetter from operator import attrgetter
from . import __version__ as borg_version from . import __version__ as borg_version
from . import __version_tuple__ as borg_version_tuple
from . import hashindex from . import hashindex
from . import chunker from . import chunker
from . import crypto from . import crypto
@ -585,6 +586,9 @@ def replace_placeholders(text):
'utcnow': current_time.utcnow(), 'utcnow': current_time.utcnow(),
'user': uid2user(os.getuid(), os.getuid()), 'user': uid2user(os.getuid(), os.getuid()),
'borgversion': borg_version, 'borgversion': borg_version,
'borgmajor': '%d' % borg_version_tuple[:1],
'borgminor': '%d.%d' % borg_version_tuple[:2],
'borgpatch': '%d.%d.%d' % borg_version_tuple[:3],
} }
return format_line(text, data) return format_line(text, data)