mirror of
https://gitee.com/dcren/initializr.git
synced 2025-04-24 18:04:58 +08:00
Stop setting executable flag outside of project generation
This commit is contained in:
parent
08c785b952
commit
1485d9af82
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package io.spring.initializr.generator.spring.build.gradle;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.assertj.core.internal.Failures;
|
||||
import org.junit.jupiter.api.io.TempDir;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link GradleWrapperContributor}.
|
||||
*
|
||||
* @author Stephane Nicoll
|
||||
*/
|
||||
class GradleWrapperContributorTests {
|
||||
|
||||
@TempDir
|
||||
Path directory;
|
||||
|
||||
static Stream<Arguments> parameters() {
|
||||
return Stream.of(Arguments.arguments("3"), Arguments.arguments("4"));
|
||||
}
|
||||
|
||||
@ParameterizedTest(name = "Gradle {0}")
|
||||
@MethodSource("parameters")
|
||||
void gradleWrapperSetExecutableFlagOnScripts(String gradleVersion)
|
||||
throws IOException {
|
||||
Path projectDir = contribute(gradleVersion);
|
||||
assertThat(projectDir.resolve("gradlew")).isRegularFile().isExecutable();
|
||||
assertThat(projectDir.resolve("gradlew.bat")).isRegularFile().isExecutable();
|
||||
assertThat(projectDir.resolve("gradle/wrapper/gradle-wrapper.jar"))
|
||||
.isRegularFile().satisfies(isNotExecutable());
|
||||
assertThat(projectDir.resolve("gradle/wrapper/gradle-wrapper.properties"))
|
||||
.isRegularFile().satisfies(isNotExecutable());
|
||||
}
|
||||
|
||||
private Consumer<Path> isNotExecutable() {
|
||||
return (path) -> {
|
||||
if (Files.isExecutable(path)) {
|
||||
throw Failures.instance().failure(String
|
||||
.format("%nExpecting:%n <%s>%nto not be executable.", path));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Path contribute(String gradleVersion) throws IOException {
|
||||
Path projectDir = Files.createTempDirectory(this.directory, "project-");
|
||||
new GradleWrapperContributor(gradleVersion).contribute(projectDir);
|
||||
return projectDir;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package io.spring.initializr.generator.spring.build.maven;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.assertj.core.internal.Failures;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.io.TempDir;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link MavenWrapperContributor}.
|
||||
*
|
||||
* @author Stephane Nicoll
|
||||
*/
|
||||
class MavenWrapperContributorTests {
|
||||
|
||||
@TempDir
|
||||
Path directory;
|
||||
|
||||
@Test
|
||||
void mavenWrapperSetExecutableFlagOnScripts() throws IOException {
|
||||
Path projectDir = contribute();
|
||||
assertThat(projectDir.resolve("mvnw")).isRegularFile().isExecutable();
|
||||
assertThat(projectDir.resolve("mvnw.cmd")).isRegularFile().isExecutable();
|
||||
assertThat(projectDir.resolve(".mvn/wrapper/maven-wrapper.jar")).isRegularFile()
|
||||
.satisfies(isNotExecutable());
|
||||
assertThat(projectDir.resolve(".mvn/wrapper/maven-wrapper.properties"))
|
||||
.isRegularFile().satisfies(isNotExecutable());
|
||||
assertThat(projectDir.resolve(".mvn/wrapper/MavenWrapperDownloader.java"))
|
||||
.isRegularFile().satisfies(isNotExecutable());
|
||||
}
|
||||
|
||||
private Consumer<Path> isNotExecutable() {
|
||||
return (path) -> {
|
||||
if (Files.isExecutable(path)) {
|
||||
throw Failures.instance().failure(String
|
||||
.format("%nExpecting:%n <%s>%nto not be executable.", path));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Path contribute() throws IOException {
|
||||
Path projectDir = Files.createTempDirectory(this.directory, "project-");
|
||||
new MavenWrapperContributor().contribute(projectDir);
|
||||
return projectDir;
|
||||
}
|
||||
|
||||
}
|
@ -265,7 +265,6 @@ public class MainController extends AbstractInitializrController {
|
||||
.invokeProjectStructureGeneration(request);
|
||||
File download = this.projectGenerationInvoker.createDistributionFile(dir, ".zip");
|
||||
String wrapperScript = getWrapperScript(request);
|
||||
new File(dir, wrapperScript).setExecutable(true);
|
||||
Zip zip = new Zip();
|
||||
zip.setProject(new Project());
|
||||
zip.setDefaultexcludes(false);
|
||||
@ -294,7 +293,6 @@ public class MainController extends AbstractInitializrController {
|
||||
File download = this.projectGenerationInvoker.createDistributionFile(dir,
|
||||
".tar.gz");
|
||||
String wrapperScript = getWrapperScript(request);
|
||||
new File(dir, wrapperScript).setExecutable(true);
|
||||
Tar zip = new Tar();
|
||||
zip.setProject(new Project());
|
||||
zip.setDefaultexcludes(false);
|
||||
|
Loading…
Reference in New Issue
Block a user