diff options
Diffstat (limited to 'pkgs/by-name/sn/snipe-it')
-rw-r--r-- | pkgs/by-name/sn/snipe-it/package.nix | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/pkgs/by-name/sn/snipe-it/package.nix b/pkgs/by-name/sn/snipe-it/package.nix new file mode 100644 index 000000000000..b8a9639b1a8d --- /dev/null +++ b/pkgs/by-name/sn/snipe-it/package.nix @@ -0,0 +1,61 @@ +{ lib +, dataDir ? "/var/lib/snipe-it" +, fetchFromGitHub +, mariadb +, nixosTests +, php +}: + +php.buildComposerProject (finalAttrs: { + pname = "snipe-it"; + version = "6.3.3"; + + src = fetchFromGitHub { + owner = "snipe"; + repo = "snipe-it"; + rev = "v${finalAttrs.version}"; + hash = "sha256-ePE55mK8woopNuRXox51I0sJGBmjF6XDfjE+k+ncoJ0="; + }; + + vendorHash = "sha256-wO+hKttiI7T7C+4oSl8G0I4pQEfZpXjYspUhoaaLrAQ="; + + postInstall = '' + snipe_it_out="$out/share/php/snipe-it" + + # Before symlinking the following directories, copy the invalid_barcode.gif + # to a different location. The `snipe-it-setup` oneshot service will then + # copy the file back during bootstrap. + mkdir -p $out/share/snipe-it + cp $snipe_it_out/public/uploads/barcodes/invalid_barcode.gif $out/share/snipe-it/ + + rm -R $snipe_it_out/storage $snipe_it_out/public/uploads $snipe_it_out/bootstrap/cache + ln -s ${dataDir}/.env $snipe_it_out/.env + ln -s ${dataDir}/storage $snipe_it_out/ + ln -s ${dataDir}/public/uploads $snipe_it_out/public/uploads + ln -s ${dataDir}/bootstrap/cache $snipe_it_out/bootstrap/cache + + chmod +x $snipe_it_out/artisan + + substituteInPlace $snipe_it_out/config/database.php --replace "env('DB_DUMP_PATH', '/usr/local/bin')" "env('DB_DUMP_PATH', '${mariadb}/bin')" + ''; + + passthru = { + tests = nixosTests.snipe-it; + phpPackage = php; + }; + + meta = with lib; { + description = "A free open source IT asset/license management system"; + longDescription = '' + Snipe-IT was made for IT asset management, to enable IT departments to track + who has which laptop, when it was purchased, which software licenses and accessories + are available, and so on. + Details for snipe-it can be found on the official website at https://snipeitapp.com/. + ''; + homepage = "https://snipeitapp.com/"; + changelog = "https://github.com/snipe/snipe-it/releases/tag/v${version}"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ yayayayaka ]; + platforms = platforms.linux; + }; +}) |