~abelianr/pyroom/plugin-system

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ------------------------------------------------------------------------------
# PyRoom - A clone of WriteRoom
# Copyright (c) 2007 Nicolas P. Rougier & NoWhereMan
# Copyright (c) 2008 The Pyroom Team - See AUTHORS file for more information
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this program.  If not, see <http://www.gnu.org/licenses/>.
# ------------------------------------------------------------------------------
#
# Based on code posted on ubuntu forums by NoWhereMan (www.nowhereland.it)
#  (Ubuntu thread was "WriteRoom/Darkroom/?")
#
# ------------------------------------------------------------------------------

import traceback
import sys
import os.path
import gobject
import gtk
import gettext
import getopt
gettext.install('pyroom', 'locale')

from basic_edit import BasicEdit
# Some styles

from styles import styles
if __name__ == '__main__':
    style = 'green'
    verbose = True
    ret = False
    files = []


    # Get commandline args
    try:
        args, files = getopt.getopt(sys.argv[1:],'vs', ['style='])
    except getopt.GetoptError:
    # Print help information
        print "Usage: pyroom [-v] [-s] [--style={style name}] file1 file2"
        sys.exit(2)
    style_true = False
    for arg, val in args:
        if arg == '-v':
            verbose = True
        elif arg == '--style':
            if val in styles:
                style = val
        elif arg == '-s':
            ret = True

    # Create relevant buffers for file and load them
    pyroom = BasicEdit(styles[style],verbose, ret)
    if len(files):
        for filename in files:
            buffer = pyroom.new_buffer()
            buffer.filename = filename
            if os.path.exists(filename):
                try:
                    print "Automatically opened %s" %(filename)
                    f = open(filename, 'r')
                    buffer.begin_not_undoable_action()
                    buffer.set_text(unicode(f.read(), 'utf-8'))
                    buffer.end_not_undoable_action()
                    f.close()
                except IOError, (errno, strerror):
                    errortext = '''Unable to open %(filename)s.''' % {'filename': buffer.filename}
                    if errno == 13:
                        errortext += ' You do not have permission to open the file.'
                    buffer.set_text(_(errortext))
                    if verbose:
                        print ('''Unable to open %(filename)s. %(traceback)s'''
                                         % {'filename': buffer.filename,
                                         'traceback': traceback.format_exc()})
                    buffer.filename = FILE_UNNAMED
                except:
                    buffer.set_text(_('Unable to open %s\n'
                                     % buffer.filename))
                    if verbose:
                        print ('''Unable to open %(filename)s. %(traceback)s'''
                                         % {'filename': buffer.filename,
                                        'traceback': traceback.format_exc()})
                    buffer.filename = FILE_UNNAMED
        
        pyroom.set_buffer(0)
        pyroom.close_buffer()

    gtk.main()

# EOF