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__
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}
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::
@ -1229,8 +1241,8 @@ class Archiver:
'.checkpoint.N' (with N being a number), because these names are used for
checkpoints and treated in special ways.
In the archive name, you may use the following format tags:
{now}, {utcnow}, {fqdn}, {hostname}, {user}, {pid}, {borgversion}
In the archive name, you may use the following placeholders:
{now}, {utcnow}, {fqdn}, {hostname}, {user} and some others.
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

View File

@ -28,6 +28,7 @@ from fnmatch import translate
from operator import attrgetter
from . import __version__ as borg_version
from . import __version_tuple__ as borg_version_tuple
from . import hashindex
from . import chunker
from . import crypto
@ -585,6 +586,9 @@ def replace_placeholders(text):
'utcnow': current_time.utcnow(),
'user': uid2user(os.getuid(), os.getuid()),
'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)