summaryrefslogtreecommitdiff
path: root/rdiff-backup/dist/makedist
blob: aef8ca7db654e1173bf32561b0796479ba23805f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env python

import os, re, shutil, time

filelist = ["rdiff-backup", "CHANGELOG", "COPYING", "README", "FAQ.html"]

# Various details about the files must also be specified by the rpm
# spec template.
spec_template = "dist/rdiff-backup.spec"


def GetVersion():
	"""Return version string by reading in ./rdiff-backup"""
	fp = open("rdiff-backup", "r")
	match = re.search("Version (.*?) ", fp.read())
	fp.close()
	return match.group(1)

def CopyMan(destination, version):
	"""Create updated man page at the specified location"""
	fp = open(destination, "w")
	date = time.strftime("%B %Y", time.localtime(time.time()))
	version = "Version "+version
	firstline = ('.TH RDIFF-BACKUP 1 "%s" "%s" "User Manuals"\n' %
				 (date, version))
	fp.write(firstline)
	infp = open("rdiff-backup.1", "r")
	infp.readline()
	fp.write(infp.read())
	fp.close()
	infp.close()

def MakeTar(version):
	"""Create rdiff-backup tar file"""
	tardir = "rdiff-backup-%s" % version
	tarfile = "rdiff-backup-%s.tar.gz" % version
	os.mkdir(tardir)
	for file in filelist: shutil.copyfile(file, os.path.join(tardir, file))
	os.chmod(os.path.join(tardir, "rdiff-backup"), 0755)
	CopyMan(os.path.join(tardir, "rdiff-backup.1"), version)
	os.system("tar -cvzf %s %s" % (tarfile, tardir))
	shutil.rmtree(tardir)
	return tarfile

def MakeSpecFile(version):
	"""Create spec file using spec template"""
	specfile = "rdiff-backup-%s-1.spec" % version
	outfp = open(specfile, "w")
	outfp.write("Version: %s\n" % version)
	infp = open(spec_template, "r")
	outfp.write(infp.read())
	infp.close()
	outfp.close()
	return specfile

def Main():
	assert not os.system("cd src; ./Make; cp ./rdiff-backup ..")
	version = GetVersion()
	print "Processing version " + version
	tarfile = MakeTar(version)
	print "Made tar file " + tarfile
	specfile = MakeSpecFile(version)
	print "Made specfile " + specfile

if __name__ == "__main__": Main()