~chris.foo/lolram/master

« back to all changes in this revision

Viewing changes to make_auto_changelog.py

  • Committer: Christopher Foo
  • Date: 2012-09-16 17:00:41 UTC
  • Revision ID: git-v1:51d973cdbe10c50641d37d7714f813d80136398c
Clean up unused files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/env python3
2
 
 
3
 
import argparse
4
 
import os
5
 
import os.path
6
 
import subprocess
7
 
import datetime
8
 
 
9
 
def main():
10
 
        arg_parser = argparse.ArgumentParser()
11
 
        arg_parser.add_argument('package_names', type=str,
12
 
                metavar='PACKAGE_NAME', nargs='+')
13
 
        arg_parser.add_argument('--source-package', dest='source_package',
14
 
                required=True)
15
 
        
16
 
        args = arg_parser.parse_args()
17
 
        major_version = open('VERSION', 'r').read().strip()
18
 
        
19
 
        for package_name in args.package_names:
20
 
                print('Package', package_name)
21
 
        
22
 
                change_hash_filename = '.change_hash.%s' % package_name
23
 
                
24
 
                if os.path.exists(change_hash_filename):
25
 
                        old_hash = open(change_hash_filename, 'r').read().strip().lower()
26
 
                else:
27
 
                        old_hash = None
28
 
                
29
 
                p = subprocess.Popen(['./calc_hash.py', 'debian/%s' %package_name],
30
 
                        stdout=subprocess.PIPE)
31
 
                out, err = p.communicate()
32
 
                new_hash = str(out, 'utf8').strip().lower()
33
 
                
34
 
                if old_hash != new_hash:
35
 
                        print('New changelog')
36
 
                
37
 
                        date_obj = datetime.datetime.utcnow()
38
 
                        date_string = '%(y)04d%(m)02d%(d)02d%(H)02d%(M)02d%(S)02d' % {
39
 
                                'y': date_obj.year,
40
 
                                'm': date_obj.month,
41
 
                                'd': date_obj.day,
42
 
                                'H': date_obj.hour,
43
 
                                'M': date_obj.minute,
44
 
                                'S': date_obj.second,
45
 
                        }
46
 
                        
47
 
                        if os.path.exists('debian/%s.changelog' % package_name):
48
 
                                os.remove('debian/%s.changelog' % package_name)
49
 
                        
50
 
                        p = subprocess.Popen(['debchange', '--changelog', 
51
 
                                'debian/%s.changelog' % package_name, '--preserve',
52
 
                                '--newversion', '%s-upstream%s' % (major_version, date_string),
53
 
                                '--distribution', 'UNRELEASED', '--force-distribution',
54
 
                                'Scripted build', '--create',  '--package', args.source_package])
55
 
                        p.wait()
56
 
                
57
 
                        with open(change_hash_filename, 'w') as f:
58
 
                                f.write(new_hash)
59
 
        
60
 
if __name__ == '__main__':
61
 
        main()
62
 
 
63
 
        
64