1{
2 lib,
3 stdenv,
4 fetchzip,
5 jdk,
6 makeWrapper,
7 installShellFiles,
8 coreutils,
9 testers,
10 gitUpdater,
11}:
12
13stdenv.mkDerivation (finalAttrs: {
14 pname = "spring-boot-cli";
15 version = "3.5.6";
16
17 src = fetchzip {
18 url = "mirror://maven/org/springframework/boot/spring-boot-cli/${finalAttrs.version}/spring-boot-cli-${finalAttrs.version}-bin.zip";
19 hash = "sha256-ujG9miirmOfWKB5o4ju0jtYoWu9k0bYRYohFnEpOVRA=";
20 };
21
22 nativeBuildInputs = [
23 makeWrapper
24 installShellFiles
25 ];
26
27 installPhase = ''
28 runHook preInstall
29 rm bin/spring.bat
30 installShellCompletion --bash shell-completion/bash/spring
31 installShellCompletion --zsh shell-completion/zsh/_spring
32 rm -r shell-completion
33 cp -r . $out
34 wrapProgram $out/bin/spring \
35 --set JAVA_HOME ${jdk} \
36 --set PATH /bin:${coreutils}/bin:${jdk}/bin
37 runHook postInstall
38 '';
39
40 passthru = {
41 tests.version = testers.testVersion {
42 package = finalAttrs.finalPackage;
43 command = "${lib.getExe finalAttrs.finalPackage} --version";
44 version = "v${finalAttrs.version}";
45 };
46 updateScript = gitUpdater {
47 url = "https://github.com/spring-projects/spring-boot";
48 ignoredVersions = ".*-(RC|M).*";
49 rev-prefix = "v";
50 };
51 };
52
53 meta = with lib; {
54 description = ''
55 CLI which makes it easy to create spring-based applications
56 '';
57 longDescription = ''
58 Spring Boot makes it easy to create stand-alone, production-grade
59 Spring-based Applications that you can run. We take an opinionated view
60 of the Spring platform and third-party libraries, so that you can get
61 started with minimum fuss. Most Spring Boot applications need very
62 little Spring configuration.
63
64 You can use Spring Boot to create Java applications that can be started
65 by using java -jar or more traditional war deployments. We also provide
66 a command line tool that runs “spring scripts”.
67 '';
68 homepage = "https://spring.io/projects/spring-boot";
69 changelog = "https://github.com/spring-projects/spring-boot/releases/tag/v${finalAttrs.version}";
70 sourceProvenance = with sourceTypes; [ binaryBytecode ];
71 mainProgram = "spring";
72 license = licenses.asl20;
73 platforms = platforms.all;
74 maintainers = with maintainers; [ moaxcp ];
75 };
76})