release.py 1.06 KB
"""
This file provides zest.releaser entrypoints using when releasing new
qrcode versions.
"""
import os
import re
import datetime


def update_manpage(data):
    """
    Update the version in the manpage document.
    """
    if data['name'] != 'qrcode':
        return

    base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    filename = os.path.join(base_dir, 'doc', 'qr.1')
    with open(filename, 'r') as f:
        lines = f.readlines()

    changed = False
    for i, line in enumerate(lines):
        if not line.startswith('.TH '):
            continue
        parts = re.split(r'"([^"]*)"', line)
        if len(parts) < 5:
            continue
        changed = parts[3] != data['new_version']
        if changed:
            # Update version
            parts[3] = data['new_version']
            # Update date
            parts[1] = datetime.datetime.now().strftime('%-d %b %Y')
            lines[i] = '"'.join(parts)
        break

    if changed:
        with open(filename, 'w') as f:
            for line in lines:
                f.write(line)