nixpkgs/pkgs/development/tools/smlfmt/default.nix
stuebinm ff1a94e523 treewide: add meta.mainProgram to packages with a single binary
The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.
2024-03-19 03:14:51 +01:00

38 lines
1,019 B
Nix

{ lib, stdenv, fetchFromGitHub, pkg-config, mlton }:
stdenv.mkDerivation rec {
pname = "smlfmt";
version = "1.1.0";
src = fetchFromGitHub {
owner = "shwestrick";
repo = pname;
rev = "v${version}";
hash = "sha256-qwhYOZrck028NliPDnqFZel3IxopQzouhHq6R7DkfPE=";
};
nativeBuildInputs = [ mlton ];
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin smlfmt
runHook postInstall
'';
meta = {
description = "A custom parser/auto-formatter for Standard ML";
mainProgram = "smlfmt";
longDescription = ''
A custom parser and code formatter for Standard ML, with helpful error messages.
Supports SML source files (.sml, .sig, .fun, etc.) as well as MLBasis
compilation files (.mlb) using MLton conventions, including MLBasis path
maps.
'';
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ munksgaard ];
platforms = mlton.meta.platforms;
homepage = "https://github.com/shwestrick/smlfmt";
};
}