All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.xtext.gradle.idea.tasks.GradleExtensions.xtend Maven / Gradle / Ivy

package org.xtext.gradle.idea.tasks

import com.google.common.base.Splitter
import groovy.lang.Closure
import java.io.File
import org.gradle.api.Project
import org.gradle.api.file.CopySpec
import org.gradle.api.file.FileCopyDetails
import com.google.common.io.Files

class GradleExtensions {
	static def copy(Project project, (CopySpec)=>void copyspec) {
		project.copy(new Closure(null) {
			override getMaximumNumberOfParameters() {
				1
			}

			override call(Object argument) {
				copyspec.apply(argument as CopySpec)
				null
			}
		})
	}
	
	static def /(File parent, String child) {
		new File(parent, child)
	}
	
	static def cutDirs(FileCopyDetails file, int levels) {
		val segments = Splitter.on('/').omitEmptyStrings.split(file.path)
		file.path = segments.drop(levels).join('/')
	}
	
	static def usingTmpDir((File)=>void action) {
		val tmp = Files.createTempDir
		try {
			action.apply(tmp)
		} finally {
			tmp.delete
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy