/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
1
# (c) Canonical Ltd, 2006
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
2
# written by Alexander Belchenko for brz project
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
3
#
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
4
# This script will be executed after installation of breezy package
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
5
# and before installer exits.
6
# All printed data will appear on the last screen of installation
7
# procedure.
8
# The main goal of this script is to create special batch file
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
9
# launcher for brz. Typical content of this batch file is:
10
#  @python brz %*
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
11
#
12
# This file works only on Windows 2000/XP. For win98 there is
13
# should be "%1 %2 %3 %4 %5 %6 %7 %8 %9" instead of "%*".
14
# Or even more complex thing.
15
#
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
16
# [bialix]: brz de-facto does not support win98.
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
17
#           Although it seems to work on. Sometimes.
1861.2.11 by Alexander Belchenko
improved postinstall script for python installer; added minimal support of win98
18
# 2006/07/30    added minimal support of win98.
2245.4.5 by Alexander Belchenko
bzr-win32-bdist-postinstall.py: good win98 support
19
# 2007/01/30    added *real* support of win98.
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
20
21
import os
22
import sys
1860.1.3 by Alexander Belchenko
python-installer:
23
import _winreg
24
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
25
from breezy import win32utils
2245.4.5 by Alexander Belchenko
bzr-win32-bdist-postinstall.py: good win98 support
26
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
27
1861.2.11 by Alexander Belchenko
improved postinstall script for python installer; added minimal support of win98
28
def _quoted_path(path):
29
    if ' ' in path:
30
        return '"' + path + '"'
31
    else:
32
        return path
33
34
def _win_batch_args():
2245.4.5 by Alexander Belchenko
bzr-win32-bdist-postinstall.py: good win98 support
35
    if win32utils.winver == 'Windows NT':
1861.2.11 by Alexander Belchenko
improved postinstall script for python installer; added minimal support of win98
36
        return '%*'
37
    else:
38
        return '%1 %2 %3 %4 %5 %6 %7 %8 %9'
39
40
41
if "-install" in sys.argv[1:]:
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
42
    # try to detect version number automatically
43
    try:
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
44
        import breezy
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
45
    except ImportError:
46
        ver = ''
47
    else:
6622.1.34 by Jelmer Vernooij
Rename brzlib => breezy.
48
        ver = breezy.__version__
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
49
50
    ##
51
    # XXX change message for something more appropriate
6624 by Jelmer Vernooij
Merge Python3 porting work ('py3 pokes')
52
    print("""Breezy %s
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
53
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
54
Congratulation! Brz successfully installed.
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
55
6619.3.3 by Jelmer Vernooij
Apply 2to3 print fix.
56
""" % ver)
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
57
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
58
    batch_path = "brz.bat"
1861.2.22 by Alexander Belchenko
minor polishing after review
59
    prefix = sys.exec_prefix
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
60
    try:
61
        ##
62
        # try to create
63
        scripts_dir = os.path.join(prefix, "Scripts")
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
64
        script_path = _quoted_path(os.path.join(scripts_dir, "brz"))
1861.2.11 by Alexander Belchenko
improved postinstall script for python installer; added minimal support of win98
65
        python_path = _quoted_path(os.path.join(prefix, "python.exe"))
66
        args = _win_batch_args()
67
        batch_str = "@%s %s %s" % (python_path, script_path, args)
2245.4.5 by Alexander Belchenko
bzr-win32-bdist-postinstall.py: good win98 support
68
        # support of win98
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
69
        # if there is no HOME for brz then set it for Breezy manually
70
        base = os.environ.get('brz_HOME', None)
2245.4.5 by Alexander Belchenko
bzr-win32-bdist-postinstall.py: good win98 support
71
        if base is None:
72
            base = win32utils.get_appdata_location()
73
        if base is None:
74
            base = os.environ.get('HOME', None)
75
        if base is None:
76
            base = os.path.splitdrive(sys.prefix)[0] + '\\'
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
77
            batch_str = ("@SET brz_HOME=" + _quoted_path(base) + "\n" +
1861.2.11 by Alexander Belchenko
improved postinstall script for python installer; added minimal support of win98
78
                         batch_str)
79
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
80
        batch_path = os.path.join(scripts_dir, "brz.bat")
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
81
        f = file(batch_path, "w")
82
        f.write(batch_str)
83
        f.close()
84
        file_created(batch_path)        # registering manually created files for
85
                                        # auto-deinstallation procedure
86
        ##
87
        # inform user where batch launcher is.
6619.3.3 by Jelmer Vernooij
Apply 2to3 print fix.
88
        print("Created:", batch_path)
6624 by Jelmer Vernooij
Merge Python3 porting work ('py3 pokes')
89
        print("Use this batch file to run brz")
6619.3.2 by Jelmer Vernooij
Apply 2to3 except fix.
90
    except Exception as e:
6619.3.3 by Jelmer Vernooij
Apply 2to3 print fix.
91
        print("ERROR: Unable to create %s: %s" % (batch_path, e))
1860.1.3 by Alexander Belchenko
python-installer:
92
93
    ## this hunk borrowed from pywin32_postinstall.py
94
    # use bdist_wininst builtins to create a shortcut.
95
    # CSIDL_COMMON_PROGRAMS only available works on NT/2000/XP, and
96
    # will fail there if the user has no admin rights.
97
    if get_root_hkey()==_winreg.HKEY_LOCAL_MACHINE:
98
        try:
99
            fldr = get_special_folder_path("CSIDL_COMMON_PROGRAMS")
100
        except OSError:
101
            # No CSIDL_COMMON_PROGRAMS on this platform
102
            fldr = get_special_folder_path("CSIDL_PROGRAMS")
103
    else:
104
        # non-admin install - always goes in this user's start menu.
105
        fldr = get_special_folder_path("CSIDL_PROGRAMS")
106
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
107
    # make Breezy entry
108
    fldr = os.path.join(fldr, 'Breezy')
1860.1.3 by Alexander Belchenko
python-installer:
109
    if not os.path.isdir(fldr):
110
        os.mkdir(fldr)
111
        directory_created(fldr)
112
113
    # link to documentation
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
114
    docs = os.path.join(sys.exec_prefix, 'Doc', 'Breezy', 'index.html')
1860.1.3 by Alexander Belchenko
python-installer:
115
    dst = os.path.join(fldr, 'Documentation.lnk')
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
116
    create_shortcut(docs, 'Breezy Documentation', dst)
1860.1.3 by Alexander Belchenko
python-installer:
117
    file_created(dst)
6624 by Jelmer Vernooij
Merge Python3 porting work ('py3 pokes')
118
    print('Documentation for Breezy: Start => Programs => Breezy')
1860.1.3 by Alexander Belchenko
python-installer:
119
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
120
    # brz in cmd shell
1861.2.11 by Alexander Belchenko
improved postinstall script for python installer; added minimal support of win98
121
    if os.name == 'nt':
122
        cmd = os.environ.get('COMSPEC', 'cmd.exe')
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
123
        args = "/K brz help"
1861.2.11 by Alexander Belchenko
improved postinstall script for python installer; added minimal support of win98
124
    else:
125
        # minimal support of win98
126
        cmd = os.environ.get('COMSPEC', 'command.com')
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
127
        args = "brz help"
128
    dst = os.path.join(fldr, 'Start brz.lnk')
1860.1.3 by Alexander Belchenko
python-installer:
129
    create_shortcut(cmd,
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
130
                    'Start brz in cmd shell',
1860.1.3 by Alexander Belchenko
python-installer:
131
                    dst,
1861.2.11 by Alexander Belchenko
improved postinstall script for python installer; added minimal support of win98
132
                    args,
1860.1.3 by Alexander Belchenko
python-installer:
133
                    os.path.join(sys.exec_prefix, 'Scripts'))
134
    file_created(dst)
2946.2.1 by Alexander Belchenko
windows python-based installer: shortcut for uninstall action
135
136
    # uninstall shortcut
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
137
    uninst = os.path.join(sys.exec_prefix, 'Removebrz.exe')
138
    dst = os.path.join(fldr, 'Uninstall Breezy.lnk')
2946.2.1 by Alexander Belchenko
windows python-based installer: shortcut for uninstall action
139
    create_shortcut(uninst,
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
140
                    'Uninstall Breezy',
2946.2.1 by Alexander Belchenko
windows python-based installer: shortcut for uninstall action
141
                    dst,
6622.1.18 by Jelmer Vernooij
Rename some windows stuff.
142
                    '-u brz-wininst.log',
2946.2.1 by Alexander Belchenko
windows python-based installer: shortcut for uninstall action
143
                    sys.exec_prefix,
144
                    )
145
    file_created(dst)