~bzr-gtk/bzr-gtk/gtk2

505.1.1 by Jelmer Vernooij
Make handle-patch not dependend on the users name being abentley and install it.
1
#!/usr/bin/python
2
3
from bzrlib import errors, merge_directive
4
from bzrlib.plugin import load_plugins
5
from bzrlib.plugins.gtk import open_display
6
load_plugins()
7
8
import sys
9
10
if len(sys.argv) < 2:
11
	print "Usage: handle-patch <path>"
12
	sys.exit(1)
13
14
15
path = sys.argv[1]
16
17
try:
18
	from bzrlib.plugins.gtk.diff import (DiffController,
19
										 MergeDirectiveController)
20
	if path == '-':
21
		lines = sys.stdin.readlines()
22
	else:
23
		lines = open(path, 'rb').readlines()
24
	lines = [l.replace('\r\n', '\n') for l in lines]
25
	try:
26
		directive = merge_directive.MergeDirective.from_lines(lines)
27
	except errors.NotAMergeDirective:
688.3.1 by Toshio Kuratomi
Fix bzr-handle-patch to process patches with leading and trailing comments with
28
		controller = DiffController(path, lines, allow_dirty=True)
505.1.1 by Jelmer Vernooij
Make handle-patch not dependend on the users name being abentley and install it.
29
	else:
30
		controller = MergeDirectiveController(path, directive)
31
	window = controller.window
32
	window.show()
33
	gtk = open_display()
34
	window.connect("destroy", gtk.main_quit)
35
except Exception, e:
666.3.1 by Toshio Kuratomi
Fix import of error_dialog.
36
	from bzrlib.plugins.gtk.dialog import error_dialog
505.1.1 by Jelmer Vernooij
Make handle-patch not dependend on the users name being abentley and install it.
37
	error_dialog('Error', str(e))
38
	raise
39
gtk.main()