MCSMReleaseRepository.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 919 0d9ef7572d08
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCWriteOnlyRepository subclass:#MCSMReleaseRepository
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'packageName user password'
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
677
46693801b971 category change
Claus Gittinger <cg@exept.de>
parents: 342
diff changeset
     7
	category:'SCM-Monticello-Repositories'
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
899
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    11
!MCSMReleaseRepository class methodsFor:'instance creation'!
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    12
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    13
package: packageString user: userString password: passString
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    14
	^ self basicNew initializeWithPackage: packageString user: userString password: passString
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    15
! !
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    16
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    17
!MCSMReleaseRepository class methodsFor:'queries'!
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
creationTemplate
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	^
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
'MCSMReleaseRepository
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	package: ''mypackage''
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	user: ''squeak''
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	password: ''squeak'''
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
description
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	^ 'SqueakMap Release'
899
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    30
! !
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
899
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    32
!MCSMReleaseRepository methodsFor:'accessing'!
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    33
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    34
description
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    35
	^ 'sm://', packageName
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
! !
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
!MCSMReleaseRepository methodsFor:'as yet unclassified'!
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
checkResult: resultString
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
(#( 'HTTP/1.1 201 ' 'HTTP/1.1 200 ' 'HTTP/1.0 201 ' 'HTTP/1.0 200 ')
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
		anySatisfy: [:code | resultString beginsWith: code ])
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
			ifFalse: [self error: resultString].
227
12caf1981929 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 115
diff changeset
    44
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
releaseVersion: aVersion url: urlString
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	| result |
227
12caf1981929 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 115
diff changeset
    49
	result := HTTPSocket
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
		httpPost: self squeakMapUrl, '/packagebyname/', packageName, '/newrelease'
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
		args: {'version' -> {(aVersion info name copyAfter: $.) extractNumber asString}.
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
			   'note' -> {aVersion info message}.
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
			   'downloadURL' -> {urlString}}
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
		user: user
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
		passwd: password.
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	result contents size > 4 ifTrue: [self error: result contents]
227
12caf1981929 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 115
diff changeset
    57
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
squeakMapUrl 
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	^ 'http://localhost:9070/sm'
227
12caf1981929 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 115
diff changeset
    62
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
uploadVersion: aVersion
919
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
    66
        | result stream |
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
    67
        result := HTTPSocket
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
    68
                httpPut: (self stringForVersion: aVersion)
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
    69
                to: self squeakMapUrl, '/upload/', aVersion fileName
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
    70
                user: user
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
    71
                passwd: password.
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
    72
        self checkResult: result.
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
    73
        stream := result readStream.
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
    74
        stream skipThroughAll: 'http://'.
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
    75
        ^ 'http://', stream upToEnd
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
! !
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
899
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    78
!MCSMReleaseRepository methodsFor:'initialization'!
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    79
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    80
initializeWithPackage: packageString user: userString password: passString
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    81
	packageName := packageString.
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    82
	user := userString.
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    83
	password := passString.
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    84
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    85
! !
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    86
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    87
!MCSMReleaseRepository methodsFor:'printing & storing'!
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    88
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    89
basicStoreVersion: aVersion
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    90
	| url |
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    91
	url := self uploadVersion: aVersion.
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    92
	self releaseVersion: aVersion url: url
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    93
! !
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    94
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    95
!MCSMReleaseRepository methodsFor:'queries'!
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    96
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    97
stringForVersion: aVersion
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    98
	| stream |
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
    99
	stream := RWBinaryOrTextStream on: String new.
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
   100
	aVersion fileOutOn: stream.
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
   101
	^ stream contents
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
   102
! !
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
   103
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
!MCSMReleaseRepository class methodsFor:'documentation'!
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
version
919
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   107
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCSMReleaseRepository.st,v 1.6 2014-03-01 22:43:05 cg Exp $'
227
12caf1981929 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 115
diff changeset
   108
!
12caf1981929 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 115
diff changeset
   109
12caf1981929 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 115
diff changeset
   110
version_CVS
919
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   111
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCSMReleaseRepository.st,v 1.6 2014-03-01 22:43:05 cg Exp $'
227
12caf1981929 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 115
diff changeset
   112
!
12caf1981929 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 115
diff changeset
   113
12caf1981929 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 115
diff changeset
   114
version_SVN
919
0d9ef7572d08 class: MCSMReleaseRepository
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   115
    ^ '$Id: MCSMReleaseRepository.st,v 1.6 2014-03-01 22:43:05 cg Exp $'
115
dd7f46c50e02 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
! !
899
e5b992f2ff33 categories
Claus Gittinger <cg@exept.de>
parents: 677
diff changeset
   117