Added flake
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
{
|
||||
description = "Misael server";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
|
||||
build-gradle-application.url = "git+file:/home/mysaa/Documents/Projets/buildGradleApplication";#"github:raphiz/buildGradleApplication";
|
||||
|
||||
gradle2nix.url = "github:tadfisher/gradle2nix/v2";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, build-gradle-application, gradle2nix, ... }@inputs:
|
||||
let system = "x86_64-linux";
|
||||
pkgs = import nixpkgs { inherit system; overlays = [ build-gradle-application.overlays.default ]; };
|
||||
lib = pkgs.lib;
|
||||
jdk = pkgs.openjdk21;
|
||||
gradle = pkgs.gradle;
|
||||
|
||||
misael = gradle2nix.builders.x86_64-linux.buildGradlePackage {
|
||||
pname = "misael";
|
||||
version = "1.0";
|
||||
lockFile = ./gradle.lock;
|
||||
gradleInstallFlags = [ "assemble" ];
|
||||
inherit gradle;
|
||||
buildJdk = jdk;
|
||||
src = ./.;
|
||||
buildPhase = ''
|
||||
gradle assemble
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cp ./build/libs/misael-beta.jar $out/misael.jar
|
||||
cp -r ./build/resources/ $out/resources/
|
||||
'';
|
||||
};
|
||||
|
||||
misael-launcher = pkgs.writeShellScriptBin "misael" ''
|
||||
echo "Checking Database Migration"
|
||||
${pkgs.flyway}/bin/flyway "-url=$MISAEL_DATABASE" -user=misael "-password=$MISAEL_PASSWORD" -locations="filesystem:${misael}/resources/main/db/migration/" -schemas=misael migrate
|
||||
|
||||
echo "Launching misael"
|
||||
${jdk}/bin/java -jar ${misael}/misael.jar --spring.datasource.url=$MISAEL_DATABASE --spring.datasource.password=$MISAEL_PASSWORD "$@"
|
||||
'';
|
||||
in {
|
||||
packages.${system} = {
|
||||
default = self.packages.${system}.misael;
|
||||
misael = misael;
|
||||
};
|
||||
|
||||
apps.${system} = {
|
||||
default = self.apps.${system}.misael;
|
||||
misael = { type = "app"; program = "${misael-launcher}/bin/misael"; };
|
||||
};
|
||||
|
||||
devShells.${system} = {
|
||||
default = pkgs.mkShell {
|
||||
packages = [
|
||||
jdk
|
||||
gradle
|
||||
(pkgs.vscode-with-extensions.override {
|
||||
vscode = pkgs.vscodium;
|
||||
vscodeExtensions = with pkgs.vscode-extensions; [
|
||||
redhat.java
|
||||
vscjava.vscode-java-debug
|
||||
vscjava.vscode-java-test
|
||||
vscjava.vscode-gradle
|
||||
vscjava.vscode-java-dependency
|
||||
sonarsource.sonarlint-vscode
|
||||
bbenoist.nix
|
||||
redhat.vscode-yaml
|
||||
];
|
||||
})
|
||||
];
|
||||
shellHook = ''
|
||||
echo "Starting Gradle daemon ..."
|
||||
gradle
|
||||
echo "Gradle daemon started."
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
formatter.${system} = pkgs.nixpkgs-fmt;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user