SVN__FileoutLikeTask.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 28 Feb 2012 15:21:27 +0100
changeset 1051 ce27ce3ab6c1
parent 958 de63d3808db8
child 1078 bdae84e9a790
permissions -rw-r--r--
Fixes in progress notifications
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
     1
"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
     2
 Copyright (c) 2007-2010 Jan Vrany
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
     3
 Copyright (c) 2009-2010 eXept Software AG
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
     4
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
     5
 Permission is hereby granted, free of charge, to any person
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
     6
 obtaining a copy of this software and associated documentation
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
     7
 files (the 'Software'), to deal in the Software without
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
     8
 restriction, including without limitation the rights to use,
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
     9
 copy, modify, merge, publish, distribute, sublicense, and/or sell
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    10
 copies of the Software, and to permit persons to whom the
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    11
 Software is furnished to do so, subject to the following
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    12
 conditions:
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    13
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    14
 The above copyright notice and this permission notice shall be
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    15
 included in all copies or substantial portions of the Software.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    16
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    17
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    18
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    19
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    20
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    21
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    22
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    23
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    24
 OTHER DEALINGS IN THE SOFTWARE.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    25
"
409
c7554f1f7a93 *** empty log message ***
fm
parents: 302
diff changeset
    26
"{ Package: 'stx:libsvn' }"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
    27
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
    28
"{ NameSpace: SVN }"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
    29
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
    30
Task subclass:#FileoutLikeTask
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
    31
	instanceVariableNames:'suppressClasses suppressExtensions suppresBuildSupportFiles
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
    32
		packageClassesChanged packageExtensionsChanged extensionMethods'
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
    33
	classVariableNames:''
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
    34
	poolDictionaries:''
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
    35
	category:'SVN-Tasks'
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
    36
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
    37
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    38
!FileoutLikeTask class methodsFor:'documentation'!
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    39
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    40
copyright
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    41
"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    42
 Copyright (c) 2007-2010 Jan Vrany
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    43
 Copyright (c) 2009-2010 eXept Software AG
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    44
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    45
 Permission is hereby granted, free of charge, to any person
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    46
 obtaining a copy of this software and associated documentation
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    47
 files (the 'Software'), to deal in the Software without
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    48
 restriction, including without limitation the rights to use,
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    49
 copy, modify, merge, publish, distribute, sublicense, and/or sell
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    50
 copies of the Software, and to permit persons to whom the
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    51
 Software is furnished to do so, subject to the following
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    52
 conditions:
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    53
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    54
 The above copyright notice and this permission notice shall be
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    55
 included in all copies or substantial portions of the Software.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    56
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    57
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    58
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    59
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    60
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    61
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    62
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    63
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    64
 OTHER DEALINGS IN THE SOFTWARE.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    65
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    66
"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    67
! !
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
    68
864
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
    69
!FileoutLikeTask class methodsFor:'others'!
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
    70
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
    71
version_CVS
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
    72
    ^ '$Header$'
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
    73
! !
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
    74
250
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    75
!FileoutLikeTask methodsFor:'accessing'!
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    76
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    77
extensionMethods
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    78
    ^ extensionMethods
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    79
!
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    80
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    81
extensionMethods:aCollection"of Methods"
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    82
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    83
    extensionMethods := aCollection.
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    84
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
    85
    "Modified: / 14-05-2009 / 13:38:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    86
!
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    87
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    88
filesToGenerate
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    89
    ^ self packageDefinition fileNamesToGenerate keys
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    90
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    91
    "
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    92
        SVN::CommitTask new
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    93
            package: #stx:libsvn;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    94
            buildSupportFiles"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    95
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    96
    "Created: / 27-11-2009 / 11:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    97
    "Modified: / 17-11-2010 / 14:08:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    98
!
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
    99
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   100
packageDefinition
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   101
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   102
    ^self workingCopy packageDefinition
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   103
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   104
    "Created: / 27-11-2009 / 11:27:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   105
!
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   106
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   107
suppresBuildSupportFiles
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   108
    ^ suppresBuildSupportFiles
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   109
!
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   110
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   111
suppresBuildSupportFiles:something
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   112
    suppresBuildSupportFiles := something.
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   113
!
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   114
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   115
suppressClasses
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   116
    ^ suppressClasses
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   117
!
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   118
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   119
suppressClasses:aBoolean
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   120
    suppressClasses := aBoolean.
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   121
!
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   122
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   123
suppressExtensions
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   124
    ^ suppressExtensions
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   125
!
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   126
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   127
suppressExtensions:aBoolean
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   128
    suppressExtensions := aBoolean.
250
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
   129
! !
b6924d6c406b *** empty log message ***
fm
parents: 226
diff changeset
   130
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   131
!FileoutLikeTask methodsFor:'executing - private'!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   132
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   133
doAddNewContainers
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   134
    |filesAndDirsToAdd filesToAdd containers|
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   135
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   136
    ActivityNotification notify:'Adding new containers'.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   137
    containers := self isSelectiveFileoutTask ifTrue:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   138
                #()
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   139
            ] ifFalse:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   140
                self containersToFileOut
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   141
            ].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   142
    filesAndDirsToAdd := ((StatusCommand new)
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   143
                workingCopy:self workingCopy;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   144
                paths:containers;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   145
                execute) 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   146
                    select:[:wcEntry | wcEntry status isUnversioned ]
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   147
                    thenCollect:[:wcEntry | wcEntry path ].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   148
    filesToAdd := filesAndDirsToAdd select:
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   149
        [:fname|(workingCopy path / fname) isDirectory not].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   150
    filesAndDirsToAdd isEmpty ifFalse:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   151
        packageClassesChanged := true.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   152
        (AddCommand new)
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   153
            workingCopy:self workingCopy;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   154
            paths:filesAndDirsToAdd;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   155
            execute.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   156
    ].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   157
    filesToAdd isEmpty ifFalse:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   158
        (PropsetCommand new)
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   159
            workingCopy:self workingCopy;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   160
            name:'svn:keywords';
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   161
            value:'Id HeadURL';
864
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   162
            paths:containers;
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   163
            execute.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   164
        (PropsetCommand new)
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   165
            workingCopy:self workingCopy;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   166
            name:'svn:eol-style';
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   167
            value:'LF';
864
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   168
            paths:containers;
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   169
            execute
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   170
    ]
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   171
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   172
    "Created: / 11-04-2008 / 10:58:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   173
    "Modified: / 19-08-2009 / 14:00:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
864
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   174
    "Modified: / 29-09-2011 / 11:47:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   175
!
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   176
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   177
doCompileCopyrightMethods
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   178
    | klasses source |
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   179
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   180
    (self packageDefinition class includesSelector: #copyright) ifFalse:[^self].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   181
    ActivityNotification notify:'Compiling #copyright methods...'.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   182
    klasses := self classesToFileOut asArray.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   183
    source := (self packageDefinition class compiledMethodAt: #copyright) source.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   184
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   185
    klasses 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   186
        withIndexDo:[:cls :index | 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   187
            |metaCls|
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   188
            metaCls := cls theMetaclass.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   189
            (((metaCls includesSelector:#copyright) not) and:[metaCls programmingLanguage isSmalltalk])
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   190
                ifTrue:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   191
                    metaCls compile:source classified:'documentation'.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   192
                    (metaCls compiledMethodAt:#copyright) 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   193
                        setPackage:self package asSymbol
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   194
                    ].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   195
            ProgressNotification 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   196
                notify:('Compiling %1 (%2)' bindWith:#copyright
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   197
                        with:cls nameWithoutPrefix)
1051
ce27ce3ab6c1 Fixes in progress notifications
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 958
diff changeset
   198
                progress:(100 / klasses size) * index.
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   199
        ]
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   200
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   201
    "Modified: / 16-08-2009 / 12:59:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   202
    "Created: / 08-04-2010 / 14:31:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   203
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   204
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   205
doCompileVersionMethods
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   206
    |klasses versionMethodName|
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   207
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   208
    versionMethodName := SVNSourceCodeManager nameOfVersionMethodInClasses.
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   209
    ActivityNotification notify:'Compiling #version methods...'.
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   210
    klasses := self classesToFileOut asArray.
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   211
    klasses 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   212
        withIndexDo:[:cls :index | 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   213
            |metaCls|
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   214
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   215
            metaCls := cls theMetaclass.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   216
            ((metaCls includesSelector:versionMethodName) not 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   217
                or:[ ((cls perform:versionMethodName asSymbol) startsWith:'$Id') not ]) 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   218
                    ifTrue:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   219
                        metaCls compile:(metaCls 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   220
                                    versionMethodTemplateForSourceCodeManager:SVNSourceCodeManager)
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   221
                            classified:'documentation'.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   222
                        (metaCls compiledMethodAt:versionMethodName) 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   223
                            setPackage:self package asSymbol
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   224
                    ].
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   225
            SVNSourceCodeManager utilities ensureCorrectVersionMethodsInClass: cls usingManager: SVNSourceCodeManager.
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   226
            ProgressNotification 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   227
                notify:('Compiling %1 (%2)' bindWith:versionMethodName
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   228
                        with:cls nameWithoutPrefix)
1051
ce27ce3ab6c1 Fixes in progress notifications
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 958
diff changeset
   229
                progress:(100 / klasses size) * index.
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   230
        ].
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   231
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   232
    self extensionMethodsToFileOut notEmpty ifTrue:[
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   233
        | def |
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   234
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   235
        "TODO: Not programming language aware..."
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   236
        ((def := self packageDefinition) class includesSelector: SVNSourceCodeManager nameOfVersionMethodForExtensions) ifFalse:[
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   237
            def class 
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   238
                compile:
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   239
                    (SVNSourceCodeManager versionMethodTemplateForSmalltalkFor:SVNSourceCodeManager nameOfVersionMethodForExtensions)
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   240
                classified: #documentation
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   241
        ]
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   242
    ]
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   243
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   244
    "Created: / 28-05-2008 / 07:43:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   245
    "Modified: / 16-08-2009 / 12:59:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   246
    "Modified: / 07-07-2011 / 20:15:21 / jv"
1051
ce27ce3ab6c1 Fixes in progress notifications
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 958
diff changeset
   247
    "Modified: / 24-02-2012 / 11:47:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   248
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   249
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   250
doFileOutAll
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   251
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   252
    self
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   253
        doInitStateVariables;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   254
        doCompileVersionMethods;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   255
        doCompileCopyrightMethods;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   256
        doCompileSvnRevisionNrMethod:false;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   257
        doCompileSvnRepositoryUrlStringMethod;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   258
        doRenameContainers;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   259
        doFileOutPackageClasses;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   260
        doFileOutPackageExtensions;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   261
        doAddNewContainers;
864
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   262
        doRemoveOldContainers;
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   263
        doUpdateProjectDefinition;
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   264
        doUpdateBuildSupportFiles.
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   265
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   266
    "Created: / 17-08-2009 / 18:28:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
864
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   267
    "Modified: / 09-08-2011 / 09:28:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   268
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   269
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   270
doFileOutPackageClasses
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   271
    |klasses|
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   272
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   273
    suppressClasses == true ifTrue:[^self].
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   274
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   275
    ActivityNotification notify:'Filing out package classes'.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   276
    klasses := self classesToFileOut asArray.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   277
    klasses 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   278
        withIndexDo:[:cls :index | 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   279
            |clsStream|
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   280
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   281
            ProgressNotification notify:'Filing out ' , cls nameWithoutPrefix
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   282
                progress:(100 / klasses size) * index.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   283
            (self shouldFileOutClass:cls) ifTrue:[self workingCopy fileOutClass: cls]]
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   284
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   285
    "Created: / 11-04-2008 / 10:58:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   286
    "Modified: / 19-08-2009 / 13:44:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   287
    "Modified: / 15-10-2011 / 20:14:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   288
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   289
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   290
doFileOutPackageExtensions
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   291
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   292
    suppressExtensions == true ifTrue:[^self].
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   293
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   294
    self extensionMethodsToFileOut isEmpty ifTrue:[^self].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   295
    self workingCopy fileOutExtensions: self extensionMethodsToFileOut
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   296
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   297
    "Modified: / 07-04-2008 / 08:37:25 / janfrog"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   298
    "Created: / 11-04-2008 / 10:58:36 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   299
    "Modified: / 14-05-2009 / 13:37:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   300
    "Modified: / 15-10-2011 / 20:14:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   301
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   302
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   303
doInitStateVariables
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   304
    packageClassesChanged := self workingCopy packageClassesChanged.
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   305
    packageExtensionsChanged := self workingCopy packageExtensionsChanged.
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   306
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   307
    "Created: / 17-06-2009 / 10:17:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   308
    "Modified: / 13-08-2009 / 10:18:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   309
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   310
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   311
doRemoveOldContainers
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   312
    |containers containersToKeep containersToDelete|
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   313
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   314
    self isSelectiveFileoutTask ifTrue:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   315
        ^ self
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   316
    ].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   317
    ActivityNotification notify:'Removing old containers'.
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   318
    containers := self workingCopy containers.
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   319
    containersToKeep := self workingCopy containersToKeep.
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   320
    containersToDelete := containers \ containersToKeep.
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   321
    containersToDelete isEmpty ifFalse:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   322
        packageClassesChanged := true.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   323
        (DeleteCommand new)
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   324
            workingCopy:self workingCopy;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   325
            paths:containersToDelete;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   326
            execute
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   327
    ].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   328
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   329
    "Created: / 11-04-2008 / 11:00:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   330
    "Modified: / 19-08-2009 / 15:03:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   331
    "Modified: / 08-08-2011 / 14:33:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   332
!
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   333
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   334
doRenameContainerForClassNamed: new using: renames language: lang
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   335
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   336
    | old oldC newC |
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   337
    old := renames at: new.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   338
    (renames includesKey: old) ifTrue:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   339
        self doRenameContainerForClassNamed: old using: renames language: lang.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   340
    ].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   341
    oldC := (SVN::Repository containerNameWithoutSuffixForClassNamed: old) , '.' , lang sourceFileSuffix.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   342
    newC := (SVN::Repository containerNameWithoutSuffixForClassNamed: new) , '.' , lang sourceFileSuffix.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   343
    (workingCopy containerFilenameFor: oldC) exists ifTrue:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   344
        packageClassesChanged := true.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   345
        MoveCommand new
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   346
            workingCopy: workingCopy;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   347
            src: oldC;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   348
            dst: newC;
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   349
            execute.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   350
    ].
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   351
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   352
    "Created: / 11-04-2008 / 11:00:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   353
    "Modified: / 19-08-2009 / 15:03:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   354
    "Created: / 06-08-2011 / 21:33:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   355
!
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   356
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   357
doRenameContainers
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   358
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   359
    | renames |
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   360
    renames := Dictionary new.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   361
    ChangeSet current do:
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   362
                [:chg|
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   363
                chg isClassRenameChange ifTrue:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   364
                    renames at: chg className put: chg oldName.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   365
                ]].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   366
    self classesToFileOut do:[:cls|
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   367
        (renames includesKey: cls name) ifTrue:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   368
            self doRenameContainerForClassNamed: cls name using: renames language: cls programmingLanguage.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   369
        ]        
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   370
    ]
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   371
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   372
    "Created: / 11-04-2008 / 11:00:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   373
    "Modified: / 19-08-2009 / 15:03:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   374
    "Created: / 06-08-2011 / 21:13:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   375
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   376
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   377
doUpdateBuildSupportFiles
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   378
    |pkgDef|
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   379
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   380
    suppresBuildSupportFiles == true ifTrue:[
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   381
        ^self.
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   382
    ].
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   383
864
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   384
    (self isSelectiveFileoutTask and:[packageClassesChanged not]) ifTrue:[
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   385
        ^self.
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   386
    ].
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   387
    ActivityNotification notify:'Updating build files'.
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   388
    pkgDef := self workingCopy packageDefinition.
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   389
    self filesToGenerate do:[:supportFileName | 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   390
        |supportFile stream|
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   391
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   392
        supportFile := workingCopy path / supportFileName.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   393
        (packageClassesChanged or:[ supportFile exists not ]) ifTrue:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   394
            ActivityNotification notify:'Updating ' , supportFileName.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   395
            [
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   396
                supportFile directory exists ifFalse:
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   397
                    [supportFile directory makeDirectory].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   398
                stream := supportFile writeStream.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   399
                stream nextPutAll:(self for: pkgDef generateFile:supportFileName)
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   400
            ] ensure:[ stream ifNotNil:[ stream close ] ]
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   401
        ]
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   402
    ].
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   403
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   404
    "Created: / 20-06-2009 / 16:01:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   405
    "Modified: / 21-06-2009 / 15:18:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   406
    "Modified: / 15-10-2011 / 22:27:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   407
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   408
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   409
doUpdateProjectDefinition
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   410
    |prjClass|
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   411
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   412
    (packageClassesChanged | packageExtensionsChanged) ifFalse:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   413
        ^ self
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   414
    ].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   415
    ActivityNotification notify:'Updating project definition'.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   416
    prjClass := Smalltalk 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   417
                at:(ProjectDefinition initialClassNameForDefinitionOf:self package) 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   418
                        asSymbol.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   419
    prjClass 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   420
        ifNotNil:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   421
            Class packageQuerySignal answer:prjClass package
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   422
                do:[
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   423
                    prjClass theNonMetaclass 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   424
                        forEachContentsMethodsCodeToCompileDo:[:code :category |
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   425
                            (code startsWith: 'excludedFromPreRequisites')
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   426
                                ifFalse:[prjClass theMetaclass compile:code classified:category]
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   427
                        ]
864
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   428
                        ignoreOldEntries: false
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   429
                        ignoreOldDefinition: false
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   430
                ]
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   431
        ]
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   432
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   433
    "Created: / 11-04-2008 / 11:01:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   434
    "Modified: / 13-08-2009 / 09:13:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
864
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   435
    "Modified: / 28-09-2011 / 17:38:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   436
! !
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   437
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   438
!FileoutLikeTask methodsFor:'private'!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   439
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   440
classesToFileOut
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   441
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   442
    suppressClasses == true ifTrue:[^#()].
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   443
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   444
    ^ self workingCopy packageClassesFiltered:
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   445
            [:class |
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   446
            class isLoaded and: [ classes isNil or: [ classes includes: class ] ] ]
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   447
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   448
    "Created: / 23-03-2009 / 12:08:24 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   449
    "Modified: / 11-06-2009 / 18:17:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
958
de63d3808db8 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 928
diff changeset
   450
    "Modified: / 15-10-2011 / 20:15:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   451
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   452
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   453
containersToFileOut
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   454
    | containers extensions |
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   455
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   456
    containers := self classesToFileOut
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   457
                collect: [:class | self repository containerNameForClass: class ].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   458
    (extensions := self extensionMethodsToFileOut) notEmpty ifTrue:
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   459
        [| languages |
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   460
        languages :=  (extensions collect:[:each|each programmingLanguage]) asSet.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   461
        languages do:
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   462
            [:lang|containers add: (Repository containerNameForExtensions: lang)]].
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   463
    ^ containers
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   464
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   465
    "Created: / 14-05-2009 / 11:35:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   466
    "Modified: / 30-12-2009 / 22:05:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   467
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   468
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   469
extensionMethodsToFileOut
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   470
    ^ self workingCopy packageExtensionsFiltered:
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   471
	    [:mth |
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   472
	    extensionMethods isNil or: [ extensionMethods includes: mth ] ]
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   473
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   474
    "Created: / 14-05-2009 / 11:32:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   475
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   476
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   477
for: def generateFile: file
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   478
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   479
    | contents savedClassFilenames |
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   480
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   481
        
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   482
    file ~= 'abbrev.stc' ifTrue:[^def generateFile: file].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   483
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   484
    "Yet another kludge to trick Smalltalk>>fileNameForClass:, sigh"
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   485
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   486
    savedClassFilenames := Dictionary new.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   487
    (def searchForClasses reject:[:e|e owningClass notNil]) do:
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   488
        [:cls|
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   489
        savedClassFilenames 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   490
            at: cls
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   491
            put: cls getClassFilename.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   492
        cls setClassFilename: (SVN::Repository containerNameForClass: cls)].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   493
    contents := def generateFile: file.
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   494
    savedClassFilenames keysAndValuesDo:
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   495
        [:cls :classFileName|
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   496
        cls setClassFilename: classFileName].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   497
    ^contents
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   498
!
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   499
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   500
shouldFileOutClass: class
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   501
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   502
    "Do not fileout autoloaded classes,
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   503
    they are untouched"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   504
    class isLoaded ifFalse:[^false].
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   505
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   506
    class theNonMetaclass
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   507
        methodsDo:[:mth|(self shouldFileOutMethod: mth) ifTrue:[^true]].
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   508
    class theMetaclass
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   509
        methodsDo:[:mth|(self shouldFileOutMethod: mth) ifTrue:[^true]].
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   510
    class privateClasses 
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   511
        do:[:cls|(self shouldFileOutClass: cls) ifTrue:[^true]].
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   512
    ^false
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   513
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   514
    "
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   515
        CommitTask basicNew
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   516
            package: #'stx:libsvn';
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   517
            shouldFileOutClass: CommitTask
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   518
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   519
        CommitTask basicNew
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   520
            package: #'stx:libbasic';
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   521
            shouldFileOutClass: Object
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   522
    "
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   523
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   524
    "Created: / 24-06-2009 / 19:04:48 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   525
    "Modified: / 19-08-2009 / 13:54:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   526
    "Modified: / 10-12-2010 / 00:22:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   527
!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   528
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   529
shouldFileOutMethod: mth
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   530
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   531
    ^mth package = package and:
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   532
	[mth getSourcePosition isNil]
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   533
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   534
    "
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   535
	CommitTask basicNew
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   536
            package: #'stx:libsvn';
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   537
	    shouldFileOutMethod: (CommitTask >> #shouldFileOutMethod:)
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   538
492
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   539
	CommitTask basicNew
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   540
	    package: #'stx:libbasic';
74ff0960961c *** empty log message ***
fm
parents: 409
diff changeset
   541
	    shouldFileOutMethod: (Object >> #yourself)
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   542
    "
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   543
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   544
    "Created: / 24-06-2009 / 19:07:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   545
! !
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   546
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   547
!FileoutLikeTask methodsFor:'queries'!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   548
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   549
isSelectiveFileoutTask
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   550
    ^ classes notNil or: [ extensionMethods notNil ]
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   551
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   552
    "Created: / 14-05-2009 / 13:24:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   553
! !
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   554
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   555
!FileoutLikeTask class methodsFor:'documentation'!
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   556
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   557
version
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   558
    ^ '$Header$'
226
9c8934e12ff6 changed: #version_SVN
fm
parents: 55
diff changeset
   559
!
9c8934e12ff6 changed: #version_SVN
fm
parents: 55
diff changeset
   560
9c8934e12ff6 changed: #version_SVN
fm
parents: 55
diff changeset
   561
version_SVN
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   562
864
a3f4f2493928 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 757
diff changeset
   563
    ^ '§Id: SVN__FileoutLikeTask.st 372 2011-09-29 10:47:58Z vranyj1 §'
757
29a88a31c30c Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 492
diff changeset
   564
55
ca7fdccba8fc initial checkin
fm
parents:
diff changeset
   565
! !