diff --git a/pkgs/by-name/mi/micro/package.nix b/pkgs/by-name/mi/micro/package.nix index cf0fbafd684c..ac04ed2bf873 100644 --- a/pkgs/by-name/mi/micro/package.nix +++ b/pkgs/by-name/mi/micro/package.nix @@ -7,22 +7,25 @@ , wl-clipboard , xclip , makeWrapper -, withXclip ? true -, withWlclip ? true +# 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 }: -let - clipboardPkgs = if stdenv.isLinux then - lib.optional withXclip xclip ++ - lib.optional withWlclip wl-clipboard - else [ ]; -in + buildGoModule rec { pname = "micro"; version = "2.0.13"; src = fetchFromGitHub { owner = "zyedidia"; - repo = pname; + repo = "micro"; rev = "v${version}"; hash = "sha256-fe+7RkUwCveBk14bYzg5uLGOqTVVJsrqixBQhCS79hY="; }; @@ -31,6 +34,8 @@ buildGoModule rec { nativeBuildInputs = [ installShellFiles makeWrapper ]; + outputs = [ "out" "man" ]; + subPackages = [ "cmd/micro" ]; ldflags = let t = "github.com/zyedidia/micro/v2/internal"; in [ @@ -40,28 +45,49 @@ buildGoModule rec { "-X ${t}/util.CommitHash=${src.rev}" ]; + strictDeps = true; + preBuild = '' GOOS= GOARCH= go generate ./runtime ''; postInstall = '' installManPage assets/packaging/micro.1 - install -Dm444 -t $out/share/applications assets/packaging/micro.desktop + 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 = '' + 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 clipboardPkgs}" + --prefix PATH : "${lib.makeBinPath clipboardPackages}" ''; - passthru.tests.expect = callPackage ./test-with-expect.nix { }; + passthru = { + tests = { + expect = callPackage ./test-with-expect.nix { }; + }; + }; - meta = with lib; { + meta = { homepage = "https://micro-editor.github.io"; description = "Modern and intuitive terminal-based text editor"; - license = licenses.mit; - maintainers = with maintainers; [ AndersonTorres ]; + 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 ]; }; }