okami.mom/albedo
git clone https://git.nkp.pet/okami.mom/albedo
b585313
main
1{ 2lib , 3stdenv , 4fetchurl , 5gleam , 6beamPackages , 7makeWrapper , 8src , 9} : let 10manifest = builtins . fromTOML ( builtins . readFile " ${ src } /manifest.toml" ); 11packages = 12map ( package: { 13inherit ( package ) name version ; 14archive = fetchurl { 15url = "https://repo.hex.pm/tarballs/ ${ package . name } - ${ package . version } .tar" ; 16sha256 = lib . toLower package . outer_checksum ; 17}; 18}) 19manifest . packages ; 20packageIndex = builtins . toFile "packages.toml" ( "[packages]\n" 21+ lib . concatMapStrings ( package: " ${ package . name } = \" ${ package . version } \"\n" ) packages 22+ "\n[git]\n" ); 23in 24stdenv . mkDerivation { 25pname = "glinter" ; 26inherit ( builtins . fromTOML ( builtins . readFile " ${ src } /gleam.toml" )) version ; 27inherit src ; 28nativeBuildInputs = [ gleam beamPackages . erlang makeWrapper ]; 29buildPhase = '' 30runHook preBuild 31mkdir -p build/packages 32${ lib . concatMapStringsSep "\n" ( package : '' 33mkdir -p build/packages/ ${ package . name } "$TMPDIR/hex- ${ package . name } " 34tar -xf ${ package . archive } -C "$TMPDIR/hex- ${ package . name } " 35tar -xzf "$TMPDIR/hex- ${ package . name } /contents.tar.gz" -C build/packages/ ${ package . name } 36'' ) 37packages } 38cp ${ packageIndex } build/packages/packages.toml 39chmod -R u+w build/packages 40gleam export erlang-shipment 41runHook postBuild 42'' ; 43installPhase = '' 44runHook preInstall 45mkdir -p $ out /lib/glinter $ out /bin 46cp -R build/erlang-shipment/. $ out /lib/glinter/ 47makeWrapper $ out /lib/glinter/entrypoint.sh $ out /bin/glinter \ 48--add-flags run \ 49--prefix PATH : ${ lib . makeBinPath [ beamPackages . erlang ]} 50runHook postInstall 51'' ; 52meta = { 53description = "Gleam linter for development checks" ; 54license = lib . licenses . mit ; 55mainProgram = "glinter" ; 56platforms = lib . platforms . unix ; 57}; 58}