~doctormo/doctormo-random/gdocs-mount

« back to all changes in this revision

Viewing changes to gdocs-mount-gtk.py

  • Committer: Martin Owens
  • Date: 2010-07-20 03:53:01 UTC
  • Revision ID: doctormo@gmail.com-20100720035301-ssvsjeduo11ahabd
primary commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
#
 
3
# Copyright 2010 Martin Owens
 
4
#
 
5
# This program is free software: you can redistribute it and/or modify
 
6
#  it under the terms of the GNU General Public License as published by
 
7
#  the Free Software Foundation, either version 3 of the License, or
 
8
#  (at your option) any later version.
 
9
#
 
10
#  This program is distributed in the hope that it will be useful,
 
11
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
#  GNU General Public License for more details.
 
14
#
 
15
#  You should have received a copy of the GNU General Public License
 
16
#  along with this program.  If not, see <http://www.gnu.org/licenses/>
 
17
#
 
18
"""Small app for mounting google docs folders."""
 
19
 
 
20
# Import standard python libs
 
21
import gtk
 
22
import sys
 
23
import os
 
24
import errno
 
25
 
 
26
BASE_DIR = os.path.abspath( os.path.join(
 
27
    os.path.dirname(os.path.realpath(__file__))) )
 
28
 
 
29
if '/lib/' in BASE_DIR or '/pyshared' in BASE_DIR:
 
30
    BASE_DIR = '/usr/share/%s' % __appname__
 
31
 
 
32
GLADE_DIR = os.path.join(BASE_DIR, 'glade')
 
33
 
 
34
from gtkme import GtkApp, FormWindow
 
35
 
 
36
class AskWindow(FormWindow):
 
37
    name = 'main'
 
38
    primary = True
 
39
 
 
40
    def get_data(self):
 
41
        return {
 
42
            'password' : self.widget('password').get_text(),
 
43
            'username' : self.widget('username').get_text(),
 
44
        }
 
45
 
 
46
class MainGui(GtkApp):
 
47
    windows = [ AskWindow ]
 
48
    glade_dir = GLADE_DIR
 
49
    app_name = 'gdocs-mount'
 
50
 
 
51
 
 
52
 
 
53
def mount(username, password):
 
54
    name = username.split('@')[0]
 
55
    path = os.path.expanduser("~/.local/gdocs/%s-documents" % name)
 
56
    try:
 
57
        os.makedirs(path)
 
58
    except OSError as exc: # Python >2.5
 
59
        if exc.errno == errno.EEXIST:
 
60
            pass
 
61
        else: raise
 
62
    # Mouse it!
 
63
    cmd = 'gmount %s "%s" "%s"' % (username, password, path)
 
64
    os.system(cmd)
 
65
    # Now launchpad nautilus too
 
66
    cmd = 'nautilus "%s"' % path
 
67
    os.system(cmd)
 
68
    
 
69
 
 
70
if __name__ == '__main__':
 
71
    MainGui(callback=mount, start_loop=True)