mercurial/HGInstaller.st
author Claus Gittinger <cg@exept.de>
Sat, 30 Jun 2018 18:44:01 +0200
branchcvs_MAIN
changeset 830 3d62c1db7e3c
parent 342 3a4b76932414
child 409 20e6f5c4f3b2
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
338
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
     2
 COPYRIGHT (c) 2012-2013 by Jan Vrany
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
     3
              All Rights Reserved
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
338
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
     5
 This software is furnished under a license and may be used
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
     6
 only in accordance with the terms of that license and with the
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
     8
 be provided or otherwise made available to, or used by, any
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
     9
 other person.  No title to or ownership of the software is
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    10
 hereby transferred.
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
"{ Package: 'stx:libscm/mercurial' }"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
StandaloneStartup subclass:#HGInstaller
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	instanceVariableNames:'version destination archive'
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    16
	classVariableNames:'URLs RunningStandalone SeverityError SeverityWarning SeverityInfo'
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	poolDictionaries:''
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
	category:'SCM-Mercurial-StX-Installer'
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
!HGInstaller class methodsFor:'documentation'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
copyright
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
"
338
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    25
 COPYRIGHT (c) 2012-2013 by Jan Vrany
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    26
              All Rights Reserved
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
338
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    28
 This software is furnished under a license and may be used
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    29
 only in accordance with the terms of that license and with the
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    31
 be provided or otherwise made available to, or used by, any
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    32
 other person.  No title to or ownership of the software is
665342670130 Fix endless loop in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    33
 hereby transferred.
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
documentation
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    A simple standalone installer for Mercurial support. It downloads
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    and installs Mercurial support into Smalltalk/X IDE.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    Usage (command line):
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
        # install latest stable version
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
        stx --execute HGInstaller.st 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
        # install latest development version                             
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
        stx --execute HGInstaller.st --version default
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
        # install Mercurial for manually downloaded archive
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
        stx --execute HGInstaller.st --archive downloaded-archive.zip
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    Usage (workspace)
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
        # install latest stable version
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
        HGInstaller install
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
        # install latest development version                             
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
        HGInstaller install: #default
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
   [author:]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
        Jan Vrany <jan.vrany@fit.cvut.cz>
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    [instance variables:]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    [class variables:]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    [see also:]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
!HGInstaller class methodsFor:'initialization'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
initialize
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    "Invoked at system start or when the class is dynamically loaded."
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    75
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    76
    Smalltalk loadPackage:#'stx:goodies/communication'.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    77
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    78
    self initializeURLs.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    79
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    SeverityError := #error.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    SeverityWarning := #warning.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    SeverityInfo := #info.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    (RunningStandalone := Smalltalk commandName endsWith: (self name , '.st')) ifTrue:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
        self start 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
    ]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    89
    "Modified: / 09-07-2013 / 01:22:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    90
!
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    91
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    92
initializeURLs
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    93
    URLs := Array
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    94
                "/ Primary repository
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    95
                with: 'https://bitbucket.org/janvrany/stx-libscm/get' asURI     
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    96
                "/ Mirros
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    97
                with: 'http://swing.fit.cvut.cz/hg/stx.libscm/archive' asURI
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    98
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    99
    "Created: / 09-07-2013 / 00:27:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
!HGInstaller class methodsFor:'instance creation'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
new
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    "return an initialized instance"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    ^ self basicNew initialize.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
!HGInstaller class methodsFor:'defaults'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   112
allowCoverageMeasurementOption
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   113
    "enable/disable the --measureCoverage startup options.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   114
     The default is false, so standAlone apps do not support coverage measurements by default.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   115
     Can be redefined in subclasses to enable it 
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   116
     (but will need the libcomp and possibly the programming/oom packages to be present)"
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   117
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   118
    ^ false
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   119
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   120
    "Created: / 11-07-2013 / 01:37:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   121
!
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   122
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
allowDebugOption
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    "enable/disable the --debug startup option.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
     Can be redefined in subclasses to enable it"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
    ^ true
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
    "Created: / 07-07-2013 / 18:46:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
allowScriptingOption
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
    "enable/disable the --scripting startup option.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
     Can be redefined in subclasses to enable it"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
    ^ true
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    "Created: / 07-07-2013 / 18:46:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
suppressRCFileReading
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    "enable/disable the rc-file reading (and also the --rcFileName option).
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
     If suppressed, there is no chance to interfere with the startup.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
     Can be redefined in subclasses to disable it"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    ^ true
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    "Created: / 07-07-2013 / 18:46:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
!HGInstaller class methodsFor:'helpers'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
printInfo:msg
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    Transcript 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
        show:'[INFO]: ';
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
        showCR:msg
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    "Created: / 07-07-2013 / 18:48:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
!HGInstaller class methodsFor:'installer API'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
install
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
    "Installs latest 'default' version of Mercurial support"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    ^self new install
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
    "Created: / 07-07-2013 / 10:56:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
install: rev
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
    "Installs given revision of Mercurial support"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
    ^self new install: rev
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    "Created: / 07-07-2013 / 10:56:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
!HGInstaller class methodsFor:'startup'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
main:argv
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
    "superclass StandaloneStartup class says that I am responsible to implement this method"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
    ^self new main: argv
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    "Modified: / 07-07-2013 / 18:26:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
    "Modified (format): / 07-07-2013 / 22:00:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   189
!
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   190
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   191
usage
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   192
    Stderr nextPutLine:'stx:libscm installation script'; cr.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   193
    Stderr nextPutLine:'usage: stx --execute HGInstaller.st [options...]'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   194
    Stderr nextPutLine:'  --version REV ........... specifies which version to install. REV can be'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   195
    Stderr nextPutLine:'                            branch, tag or commit id.'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   196
    Stderr nextPutLine:'  --archive FILE .......... specifies an archive file to install. If ommited'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   197
    Stderr nextPutLine:'                            archive is donwloaded'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   198
    Stderr nextPutLine:'  --help .................. output this message'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   199
"/    Stderr nextPutLine:'  --verbose ............... verbose startup'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   200
"/    Stderr nextPutLine:'  --noBanner .............. no splash screen'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   201
"/    Stderr nextPutLine:'  --newAppInstance ........ start as its own application process (do not reuse a running instance)'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   202
"/    self allowScriptingOption ifTrue:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   203
"/        Stderr nextPutLine:'  --scripting portNr ...... enable scripting via port (or stdin/stdOut, if 0)'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   204
"/    ].
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   205
    self allowDebugOption ifTrue:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   206
        Stderr nextPutLine:'  --debug ................. enable Debugger'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   207
    ].
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   208
    self allowCoverageMeasurementOption ifTrue:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   209
        Stderr nextPutLine:'  --coverage .............. turn on coverage measurement'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   210
        Stderr nextPutLine:'     [+/-]package: pattern ...  - include/exclude packages'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   211
        Stderr nextPutLine:'     [+/-]class: pattern ...    - include/exclude classes'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   212
        Stderr nextPutLine:'     [+/-]method: cls#sel ...   - include/exclude methods'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   213
    ].
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   214
    self suppressRCFileReading ifFalse:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   215
        Stderr nextPutLine:'  --rcFileName file ....... execute code from file on startup (default: ',self startupFilename,')'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   216
    ].
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   217
    Stderr cr.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   218
    Stderr nextPutLine:'For more information see wiki:'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   219
    Stderr nextPutLine:'  https://bitbucket.org/janvrany/stx-libscm/wiki/Installation'.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   220
    Stderr cr.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   221
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   222
    Smalltalk exit: 0
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   223
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   224
    "Created: / 11-07-2013 / 01:36:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
!HGInstaller class methodsFor:'startup-private'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
applicationRegistryPath
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
    "the key under which this application stores its process ID in the registry
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
     as a collection of path-components.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
     i.e. if #('foo' 'bar' 'baz') is returned here, the current applications ID will be stored
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
     in HKEY_CURRENT_USER\Software\foo\bar\baz\CurrentID.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
     (would also be used as a relative path for a temporary lock file under unix).
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
     Used to detect if another instance of this application is already running."
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
    ^ #(libscm mercurial installer)
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
    "Modified: / 07-07-2013 / 18:24:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
applicationUUID
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
    "answer an application-specific unique uuid.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
     This is used as the name of some exclusive OS-resource, which is used to find out,
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
     if another instance of this application is already running.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
     Under win32, a mutex is used; under unix, an exclusive file in the tempDir could be used.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
     If redefined, please return a real UUID (i.e. UUID fromString:'.....') and not a string or
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
     similar possibly conflicting identifier.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
     You can paste a fresh worldwide unique id via the editor's more-misc-paste UUID menuFunction."
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
    ^ UUID fromString:'132746c0-e72a-11e2-85f0-606720e43e2c'
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
    "Modified: / 07-07-2013 / 18:24:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
!HGInstaller methodsFor:'initialization'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
initialize
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
    "Invoked when a new instance is created."
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
    "/ please change as required (and remove this comment)
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
    version := 'default'.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
    "/ super initialize.   -- commented since inherited method does nothing
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
    "Modified: / 07-07-2013 / 11:11:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
!HGInstaller methodsFor:'installation'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
install
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
    self doPrepare.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
    self doDownload.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
    self doExtract.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
    self doCompile.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
    self doConfigure.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
    "Created: / 07-07-2013 / 11:07:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
    "Modified: / 07-07-2013 / 19:06:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
install: ver
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
    version := ver.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
    self install.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
    "Created: / 07-07-2013 / 11:08:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
!HGInstaller methodsFor:'installation-private'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
doCompile
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
    | cmd |
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
    cmd := OperatingSystem isMSWINDOWSlike ifTrue:[ 'bmake.bat'] ifFalse:['make'].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
    ( destination directory / 'stc' ) exists ifTrue:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
        | log |
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
        log := Filename newTemporaryIn: Filename tempDirectory nameTemplate:'compile-%1-%2.log'.            
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
        log writingFileDo:[:logs|
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   299
            Transcript nextPutAll: 'Compiling...'; cr.
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
            (OperatingSystem executeCommand: cmd outputTo: logs errorTo: logs inDirectory: destination pathName) ifFalse:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
                self log: 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
                        'Compilation failed' 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
                     details:
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
                        'This is not fatal, but the package will be loaded from source
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
                         instead of from binary class library, which is slower. 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
                         You may want to check the compilation log in:
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
                         ', log pathName
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   309
                    severity: SeverityWarning.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   310
            ].
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   311
            (OperatingSystem executeCommand: (cmd , ' clean') outputTo: logs errorTo: logs inDirectory: destination pathName) ifFalse:[
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   312
                self log: 
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   313
                        'Compilation failed' 
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   314
                     details:
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   315
                        'This is not fatal, but the package will be loaded from source
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   316
                         instead of from binary class library, which is slower. 
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   317
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   318
                         You may want to check the compilation log in:
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   319
                         ', log pathName
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   320
                    severity: SeverityWarning.    
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
             ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
        
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
        ]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
    ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
    "Created: / 07-07-2013 / 18:50:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   327
    "Modified: / 09-07-2013 / 01:30:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
doConfigure
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
    | top rcd |
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   333
    Transcript nextPutLine: 'Configuring...'.
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
    top := (Smalltalk getPackageDirectoryForPackage: Object package) directory directory.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
    rcd := top / 'stx'/ 'projects' / 'smalltalk' / 'rc.d'.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
    rcd isDirectory ifTrue:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
        (rcd / '50_mercurial.rc') writingFileDo:[:s|
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
            s nextPutLine:'"/ Load Mercurial support'.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
            top = destination directory directory ifFalse:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
                s nextPutLine: ('Smalltalk packagePath: (Smalltalk packagePath: %1).' bindWith: destination directory directory pathName).        
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
            ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
            s nextPutAll:'Smalltalk loadPackage: ''stx:libscm/mercurial''.'.    
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
        ].            
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
    ] ifFalse:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
        
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   346
    ].
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
    "Created: / 07-07-2013 / 11:19:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   349
    "Modified: / 11-07-2013 / 01:41:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   352
doDownload
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   353
    | urls1 urls2 |
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   354
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   355
    archive notNil ifTrue:[ ^ self ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   357
    archive := Filename newTemporary.
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   358
    Transcript nextPutAll:'Downloading...'; cr.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   359
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   360
    urls1 := URLs select: [:url|url scheme = 'http'].
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   361
    urls2 := URLs reject: [:url|url scheme = 'http'].
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   362
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   363
    (( urls1 , urls2 )  anySatisfy:[:base|
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   364
        | downloaded url|
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   365
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   366
        url := base / (version , '.zip').
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   367
        Transcript nextPutAll:'  '; nextPutAll: url asString; nextPutAll: '...'.
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   368
        downloaded := self doDownload: url.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   369
        Transcript nextPutAll: (downloaded ifTrue:['OK'] ifFalse:['FAILED']); cr.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   370
        downloaded                        
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   371
    ]) ifFalse:[
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   372
        self error:'Failed to download archive!!'.
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
    ].
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   374
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
    (ZipArchive isZipArchive: archive) ifFalse:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
        self error: ('Downloaded file (%1) is not a .zip archive!!' bindWith: archive pathName).
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
    ].  
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
    "/    ]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
    "Created: / 07-07-2013 / 11:19:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   382
    "Modified: / 11-07-2013 / 01:40:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
325
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   383
!
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   384
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   385
doDownload: url
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   386
    "Download a given file and save it into `archive` 
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   387
     Return true, if the file has been downloaded, false otherwise"
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   388
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   389
    (url scheme = 'http' and:[HTTPInterface notNil]) ifTrue:[
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   390
        | client response |
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   391
        client := HTTPInterface connectTo: url host port: (url port ? 80).
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   392
        client destinationFile: archive.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   393
        response := client requestGET: url asString.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   394
        ^response isErrorResponse not 
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   395
            and:[response isFileErrorResponse not 
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   396
            and:[response isMovedResponse not]]
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   397
                        
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   398
    ].
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   399
    
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   400
    (url scheme = 'https' or:[HTTPInterface isNil]) ifTrue:[    
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   401
        | cmd |
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   402
        (OperatingSystem canExecuteCommand:'curl') ifTrue:[
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   403
            cmd := 'curl -s -o %1 %2' bindWith:archive pathName with:url.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   404
        ] ifFalse:[
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   405
            (OperatingSystem canExecuteCommand:'wget') ifTrue:[
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   406
                cmd := 'wget -s -o %1 %2' bindWith:archive pathName with:url.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   407
            ] ifFalse:[
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   408
                ^false.
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   409
            ].
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   410
        ].
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   411
        ^ OperatingSystem executeCommand:cmd
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   412
    ].
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   413
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   414
    ^false "Unssuported protocol"
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   415
b34e5451604d HGInstaller improved to use HTTP mirror to download package...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   416
    "Created: / 09-07-2013 / 00:23:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   417
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   418
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   419
doExtract
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   420
    | zar |
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   421
342
3a4b76932414 Added HG2CVS tool for naive synchronization of CVS from Mercuriual repo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 338
diff changeset
   422
    Transcript nextPutLine:'Extracting...'.
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   423
    [
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   424
        destination recursiveMakeDirectory.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   425
    ] on:Error
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   426
            do:[:ex | 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   427
        self 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   428
            error:'Cannot make destination directory ' , destination pathName , ': ' 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   429
                    , ex description
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   430
    ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   431
    
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   432
    zar := ZipArchive oldFileNamed:archive pathName.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   433
    zar members do:[:zmemb | 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   434
        | i  src  dst  dstd skipIt |
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   435
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   436
        src := zmemb fileName.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   437
        i := src indexOf:$/.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   438
        i ~~ 0 ifTrue:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   439
            src := src copyFrom:i + 1.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   440
        ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   441
        
342
3a4b76932414 Added HG2CVS tool for naive synchronization of CVS from Mercuriual repo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 338
diff changeset
   442
        skipIt := (src startsWith:'git') 
3a4b76932414 Added HG2CVS tool for naive synchronization of CVS from Mercuriual repo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 338
diff changeset
   443
                        or:[src startsWith: 'mercurial/docs'].
3a4b76932414 Added HG2CVS tool for naive synchronization of CVS from Mercuriual repo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 338
diff changeset
   444
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   445
        skipIt ifFalse:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   446
           dst := OperatingSystem isMSWINDOWSlike 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   447
                   ifTrue:[destination / (src copyReplaceAll:$/ with:Filename separator)]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   448
                   ifFalse:[destination / src].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   449
           (dstd := dst directory) exists ifFalse:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   450
               dstd recursiveMakeDirectory
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   451
           ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   452
           dst writingFileDo:[:f | 
342
3a4b76932414 Added HG2CVS tool for naive synchronization of CVS from Mercuriual repo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 338
diff changeset
   453
               Transcript nextPutAll: '  '; nextPutLine: src.
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   454
               zar extract:zmemb fileName intoStream:f 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   455
           ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   456
        ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   457
    ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   458
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   459
    "Created: / 07-07-2013 / 11:19:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
342
3a4b76932414 Added HG2CVS tool for naive synchronization of CVS from Mercuriual repo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 338
diff changeset
   460
    "Modified: / 07-07-2013 / 19:22:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3a4b76932414 Added HG2CVS tool for naive synchronization of CVS from Mercuriual repo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 338
diff changeset
   461
    "Modified (format): / 07-07-2013 / 20:51:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   462
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   463
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   464
doPrepare
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   465
    | pp |
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   466
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   467
    pp := Smalltalk getPackageDirectoryForPackage:'stx:libscm'.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   468
    pp isNil ifTrue:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   469
        pp := Smalltalk getPackageDirectoryForPackage:'stx:libbasic'.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   470
    ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   471
    destination := pp directory isWritable 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   472
                    ifTrue:[pp directory / 'libscm']
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   473
                    ifFalse:[Filename homeDirectory / '.stx' / 'packages' / 'stx' / 'libscm'].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   474
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   475
    Transcript nextPutLine: 'Installing version ', version , ' to ', destination pathName.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   476
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   477
    "Created: / 07-07-2013 / 19:06:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   478
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   479
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   480
!HGInstaller methodsFor:'logging'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   481
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   482
log:message details: details severity:severity 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   483
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   484
    | stream |
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   485
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   486
    (severity == SeverityInfo and:[Verbose not]) ifTrue:[ ^ self ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   487
    stream := RunningStandalone ifTrue:[Stderr] ifFalse:[Transcript].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   488
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   489
    stream
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   490
        nextPut:$[;
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   491
        nextPutAll:severity asUppercase;
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   492
        nextPutAll:']: ';
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   493
        nextPutLine:message.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   494
    details notNil ifTrue:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   495
        details asStringCollection do:[:line | 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   496
            stream
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   497
                nextPutAll:'  ';
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   498
                nextPutLine:line trimSeparators.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   499
        ]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   500
    ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   501
    severity == SeverityError ifTrue:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   502
        RunningStandalone ifTrue:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   503
            Smalltalk exit:1.
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   504
        ] ifFalse:[
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   505
            self error:message
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   506
        ]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   507
    ].
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   508
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   509
    "Created: / 07-07-2013 / 23:23:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   510
    "Modified: / 08-07-2013 / 00:27:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   511
!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   512
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   513
log:message severity:severity 
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   514
    self log:message details: nil severity:severity
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   515
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   516
    "Created: / 07-07-2013 / 23:34:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   517
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   518
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   519
!HGInstaller methodsFor:'running'!
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   520
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   521
main: argv
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   522
    "Run the installer. This is called when the installer
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   523
     is called from a command line as:
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   524
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   525
        stx --execute HGInstaller.st
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   526
    "
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   527
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   528
    | i |
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   529
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   530
    [
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   531
        (Smalltalk getPackageDirectoryForPackage: Object package) isNil ifTrue:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   532
            | cmd root |
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   533
            cmd := OperatingSystem pathOfSTXExecutable asFilename asAbsoluteFilename.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   534
            root := cmd directory directory directory directory.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   535
            root infoPrintCR.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   536
            (root / 'stx' / 'libbasic') isDirectory ifFalse:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   537
                self log: 'Cannot determine package path' severity: SeverityError.
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   538
            ].
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   539
            Smalltalk packagePath: (Smalltalk packagePath copyWith: root pathName).
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   540
        ].
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   541
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   542
        i := 1.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   543
        [ i <= argv size ] whileTrue:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   544
            | a |
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   545
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   546
            a := argv at: i.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   547
            a = '--version' ifTrue:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   548
                i = argv size ifTrue:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   549
                    self error: '--version requires an argument!!'
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   550
                ].
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   551
                version := argv at: i + 1.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   552
                i := i + 2.            
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   553
            ] ifFalse:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   554
            a = '--archive' ifTrue:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   555
                i = argv size ifTrue:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   556
                    self log: '--archive requires an argument!!' severity: SeverityError
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   557
                ].
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   558
                archive := (argv at: i + 1) asFilename.
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   559
                archive exists ifFalse:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   560
                    self log: ('Archive %1 does not exist' bindWith: archive pathName) severity: SeverityError
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   561
                ].
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   562
                archive isReadable ifFalse:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   563
                    self log: ('Archive %1 is not readable!!' bindWith: archive pathName) severity: SeverityError
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   564
                ].
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   565
                (ZipArchive isZipArchive: archive) ifFalse:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   566
                    self log: ('Archive %1 does not seem to be a valid .zip archive!!' bindWith: archive pathName) severity: SeverityError
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   567
                ].
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   568
                i := i + 2.            
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   569
            ] ifFalse:[
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   570
                self log: ('Unknown option ''',a,'''') severity: SeverityError.              
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   571
            ]]
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   572
        ].
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   573
        self install.
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   574
        Smalltalk exit: 0.
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   575
    ] on: Error do:[:ex|
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   576
        self log: 'Unexpected error: ', ex description severity: SeverityError
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   577
    ]
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   578
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   579
    "Created: / 07-07-2013 / 18:30:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
332
fba502c3fe50 Fix in argument parsing in HGInstaller.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 325
diff changeset
   580
    "Modified: / 11-07-2013 / 01:45:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
320
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   581
! !
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   582
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   583
71293a1b6616 Initial version of HGInstaller.st...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   584
HGInstaller initialize!