X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=pkgs%2Fprivate%2Fwebapps%2Faten%2Fdefault.nix;fp=pkgs%2Fprivate%2Fwebapps%2Faten%2Fdefault.nix;h=e6ca048143798e013d78a88f96b9c94f75e6372d;hb=1bd8b03eeaafa9345282d8aaf6499bc80adf062f;hp=0000000000000000000000000000000000000000;hpb=9eae2b47b7b315b05a0e010f3003bd875685e260;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/pkgs/private/webapps/aten/default.nix b/pkgs/private/webapps/aten/default.nix new file mode 100644 index 0000000..e6ca048 --- /dev/null +++ b/pkgs/private/webapps/aten/default.nix @@ -0,0 +1,56 @@ +{ environment ? "prod" +, varDir ? "/var/lib/aten_${environment}" +, mylibs, composerEnv, fetchgit, runCommand, nodejs, jq, libsass, python, fetchurl }: +let + packagesource = mylibs.fetchedGitPrivate ./aten.json; + packagejson = runCommand "package.json" { buildInputs = [ jq ]; } '' + cat ${packagesource.src}/package.json | jq -r '.version = "v1.0.0"|.name="aten"' > $out + ''; + yarnModules = mylibs.yarn2nixPackage.mkYarnModules rec { + name = "aten-yarn"; + pname = name; + version = "v1.0.0"; + packageJSON = packagejson; + yarnLock = "${packagesource.src}/yarn.lock"; + pkgConfig = { + all = { + buildInputs = [ mylibs.yarn2nixPackage.src ]; + }; + node-sass = { + buildInputs = [ libsass python ]; + postInstall = let + nodeHeaders = fetchurl { + url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz"; + sha256 = "16f20ya3ys6w5w6y6l4536f7jrgk4gz46bf71w1r1xxb26a54m32"; + }; + in + '' + node scripts/build.js --tarball=${nodeHeaders} + ''; + }; + }; + }; + app = composerEnv.buildPackage ( + import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } // + packagesource // + rec { + noDev = (environment == "prod"); + preInstall = '' + export SYMFONY_ENV="${environment}" + export APP_ENV="${environment}" + ''; + postInstall = '' + ln -sf ${yarnModules}/node_modules . + yarn run --offline encore production + rm -rf var/{log,cache} + ln -sf ${varDir}/{log,cache} var/ + ''; + buildInputs = [ yarnModules mylibs.yarn2nixPackage.yarn ]; + passthru = { + inherit varDir; + inherit environment; + webRoot = "${app}/public"; + }; + } + ); +in app