Skip to content

Commit b15be27

Browse files
committed
renamed task cleanEclipse to purgeEclipse, added task uninstallAllEclipseVersions
1 parent 1c090be commit b15be27

File tree

1 file changed

+66
-30
lines changed

1 file changed

+66
-30
lines changed

libs/unpuzzle-plugin/src/main/groovy/org/akhikhl/unpuzzle/Configurer.groovy

Lines changed: 66 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,24 @@ class Configurer {
7676
}
7777
}
7878

79+
project.task('uninstallAllEclipseVersions') {
80+
outputs.upToDateWhen {
81+
uninstallAllEclipseVersionsUpToDate()
82+
}
83+
doLast {
84+
uninstallAllEclipseVersions()
85+
}
86+
}
87+
7988
project.task('uploadEclipse') {
8089
dependsOn project.tasks.downloadEclipse
8190
doLast {
8291
uploadEclipse()
8392
}
8493
}
8594

86-
project.task('cleanEclipse') {
87-
dependsOn project.tasks.uninstallEclipse
95+
project.task('purgeEclipse') {
96+
dependsOn project.tasks.uninstallAllEclipseVersions
8897
outputs.upToDateWhen {
8998
!effectiveConfig.unpuzzleDir.exists()
9099
}
@@ -98,34 +107,6 @@ class Configurer {
98107
} // project.afterEvaluate
99108
}
100109

101-
void updateTasks(String taskGroup) {
102-
this.taskGroup = taskGroup
103-
if(project.tasks.findByName('downloadEclipse'))
104-
updateTaskProperties()
105-
}
106-
107-
private void updateTaskProperties() {
108-
Config econfig = new Config()
109-
Config.merge(econfig, project.unpuzzle)
110-
if(econfig.selectedVersionConfig != null && econfig.localMavenRepositoryDir != null) {
111-
def mavenGroupPath
112-
if(econfig.selectedVersionConfig.eclipseMavenGroup)
113-
mavenGroupPath = new File(econfig.localMavenRepositoryDir, econfig.selectedVersionConfig.eclipseMavenGroup).absolutePath
114-
else
115-
mavenGroupPath = econfig.localMavenRepositoryDir.absolutePath
116-
project.tasks.downloadEclipse.group = taskGroup
117-
project.tasks.downloadEclipse.description = "Downloads eclipse version ${econfig.selectedEclipseVersion} into ${econfig.unpuzzleDir} directory"
118-
project.tasks.installEclipse.group = taskGroup
119-
project.tasks.installEclipse.description = "Mavenizes and installs bundles of the eclipse version ${econfig.selectedEclipseVersion} into ${mavenGroupPath}"
120-
project.tasks.uninstallEclipse.group = taskGroup
121-
project.tasks.uninstallEclipse.description = "Uninstalls mavenized bundles of the eclipse version ${econfig.selectedEclipseVersion} from ${mavenGroupPath}"
122-
project.tasks.uploadEclipse.group = taskGroup
123-
project.tasks.uploadEclipse.description = "Uploads mavenized bundles of the eclipse version ${econfig.selectedEclipseVersion} to remote maven repository"
124-
project.tasks.cleanEclipse.group = taskGroup
125-
project.tasks.cleanEclipse.description = "uninstalls all mavenized artifacts, cleans ${econfig.unpuzzleDir} directory"
126-
}
127-
}
128-
129110
void downloadEclipse() {
130111
def vconf = getSelectedVersionConfig()
131112
new EclipseDownloader().downloadAndUnpack(vconf.sources, effectiveConfig.unpuzzleDir)
@@ -194,6 +175,31 @@ class Configurer {
194175
log.debug '{}.unpuzzle already has parentConfig, setupConfigChain skipped', project.name
195176
}
196177

178+
void uninstallAllEclipseVersions() {
179+
if(effectiveConfig.dryRun) {
180+
log.warn 'uninstallAllEclipseVersions: unpuzzle.dryRun=true, no work done'
181+
return
182+
}
183+
def mavenDeployer = new Deployer(effectiveConfig.localMavenRepositoryDir)
184+
effectiveConfig.versionConfigs.each { eclipseVersion, vconf ->
185+
def eclipseDeployer = new EclipseDeployer(effectiveConfig.unpuzzleDir, vconf.eclipseMavenGroup, mavenDeployer)
186+
if(!eclipseDeployer.allDownloadedPackagesAreUninstalled(vconf.sources)) {
187+
log.warn 'Uninstalling eclipse version {} from maven-repo {}, maven-group {}', eclipseVersion, effectiveConfig.localMavenRepositoryDir.toURI().toString(), vconf.eclipseMavenGroup
188+
eclipseDeployer.uninstall(vconf.sources)
189+
}
190+
}
191+
}
192+
193+
boolean uninstallAllEclipseVersionsUpToDate() {
194+
if(effectiveConfig.dryRun)
195+
return false
196+
def mavenDeployer = new Deployer(effectiveConfig.localMavenRepositoryDir)
197+
effectiveConfig.versionConfigs.each { eclipseVersion, vconf ->
198+
def eclipseDeployer = new EclipseDeployer(effectiveConfig.unpuzzleDir, vconf.eclipseMavenGroup, mavenDeployer)
199+
eclipseDeployer.allDownloadedPackagesAreUninstalled(vconf.sources)
200+
}
201+
}
202+
197203
void uninstallEclipse() {
198204
def vconf = getSelectedVersionConfig()
199205
if(effectiveConfig.dryRun) {
@@ -217,6 +223,36 @@ class Configurer {
217223
eclipseDeployer.allDownloadedPackagesAreUninstalled(vconf.sources)
218224
}
219225

226+
void updateTasks(String taskGroup) {
227+
this.taskGroup = taskGroup
228+
if(project.tasks.findByName('downloadEclipse'))
229+
updateTaskProperties()
230+
}
231+
232+
private void updateTaskProperties() {
233+
Config econfig = new Config()
234+
Config.merge(econfig, project.unpuzzle)
235+
if(econfig.selectedVersionConfig != null && econfig.localMavenRepositoryDir != null) {
236+
def mavenGroupPath
237+
if(econfig.selectedVersionConfig.eclipseMavenGroup)
238+
mavenGroupPath = new File(econfig.localMavenRepositoryDir, econfig.selectedVersionConfig.eclipseMavenGroup).absolutePath
239+
else
240+
mavenGroupPath = econfig.localMavenRepositoryDir.absolutePath
241+
project.tasks.downloadEclipse.group = taskGroup
242+
project.tasks.downloadEclipse.description = "Downloads eclipse version ${econfig.selectedEclipseVersion} into ${econfig.unpuzzleDir} directory"
243+
project.tasks.installEclipse.group = taskGroup
244+
project.tasks.installEclipse.description = "Mavenizes and installs bundles of the eclipse version ${econfig.selectedEclipseVersion} into ${mavenGroupPath}"
245+
project.tasks.uninstallAllEclipseVersions.group = taskGroup
246+
project.tasks.uninstallAllEclipseVersions.description = "Uninstalls mavenized bundles of all eclipse versions from ${econfig.localMavenRepositoryDir}"
247+
project.tasks.uninstallEclipse.group = taskGroup
248+
project.tasks.uninstallEclipse.description = "Uninstalls mavenized bundles of the eclipse version ${econfig.selectedEclipseVersion} from ${mavenGroupPath}"
249+
project.tasks.uploadEclipse.group = taskGroup
250+
project.tasks.uploadEclipse.description = "Uploads mavenized bundles of the eclipse version ${econfig.selectedEclipseVersion} to remote maven repository"
251+
project.tasks.purgeEclipse.group = taskGroup
252+
project.tasks.purgeEclipse.description = "Uninstalls all mavenized artifacts, removes ${econfig.unpuzzleDir} directory"
253+
}
254+
}
255+
220256
void uploadEclipse() {
221257
def uploadEclipse = [:]
222258
if(project.hasProperty('uploadEclipse'))

0 commit comments

Comments
 (0)