nixpkgs/pkgs/by-name/mi/micro/package.nix
Anderson Torres e439f7ea3c micro: cleanup
- put the stdenv.isLinux condition over input arguments
- deprecate withWlclip -> withWlClipboard
- migrate clipboardPackages next to postFixup
- remove references to pname
- split outputs
- strictDeps
- rework postInstall
- desugar passthru
- remove nested with in meta
- add meta.longDescription
2024-07-31 11:59:32 -03:00

94 lines
2.4 KiB
Nix

{ lib
, stdenv
, buildGoModule
, fetchFromGitHub
, installShellFiles
, callPackage
, wl-clipboard
, xclip
, makeWrapper
# Boolean flags
, withXclip ? stdenv.isLinux
, withWlclip ? null
, withWlClipboard ?
if withWlclip != null then
lib.warn ''
withWlclip is deprecated and will be removed;
use withWlClipboard instead.
'' withWlclip
else stdenv.isLinux
}:
buildGoModule rec {
pname = "micro";
version = "2.0.13";
src = fetchFromGitHub {
owner = "zyedidia";
repo = "micro";
rev = "v${version}";
hash = "sha256-fe+7RkUwCveBk14bYzg5uLGOqTVVJsrqixBQhCS79hY=";
};
vendorHash = "sha256-ePhObvm3m/nT+7IyT0W6K+y+9UNkfd2kYjle2ffAd9Y=";
nativeBuildInputs = [ installShellFiles makeWrapper ];
outputs = [ "out" "man" ];
subPackages = [ "cmd/micro" ];
ldflags = let t = "github.com/zyedidia/micro/v2/internal"; in [
"-s"
"-w"
"-X ${t}/util.Version=${version}"
"-X ${t}/util.CommitHash=${src.rev}"
];
strictDeps = true;
preBuild = ''
GOOS= GOARCH= go generate ./runtime
'';
postInstall = ''
installManPage assets/packaging/micro.1
install -Dm444 assets/packaging/micro.desktop $out/share/applications/micro.desktop
install -Dm644 assets/micro-logo-mark.svg $out/share/icons/hicolor/scalable/apps/micro.svg
'';
postFixup = let
clipboardPackages =
lib.optionals withXclip [ xclip ] ++ lib.optionals withWlClipboard [ wl-clipboard ];
in
lib.optionalString (withXclip || withWlClipboard)
''
wrapProgram "$out/bin/micro" \
--prefix PATH : "${lib.makeBinPath clipboardPackages}"
'';
passthru = {
tests = {
expect = callPackage ./test-with-expect.nix { };
};
};
meta = {
homepage = "https://micro-editor.github.io";
description = "Modern and intuitive terminal-based text editor";
longDescription = ''
micro is a terminal-based text editor that aims to be easy to use and
intuitive, while also taking advantage of the capabilities of modern
terminals.
As its name indicates, micro aims to be somewhat of a successor to the
nano editor by being easy to install and use. It strives to be enjoyable
as a full-time editor for people who prefer to work in a terminal, or
those who regularly edit files over SSH.
'';
license = lib.licenses.mit;
mainProgram = "micro";
maintainers = with lib.maintainers; [ AndersonTorres ];
};
}