Unverified Commit bb6c5f9f authored by pennae's avatar pennae Committed by GitHub
Browse files

Merge pull request #244324 from SuperSandro2000/nixos-nano

nixos/nano: add enable, package option, do not create /etc/nanorc by …
parents ab7256be 5b9cdda1
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -200,6 +200,10 @@

- `spamassassin` no longer supports the `Hashcash` module. The module needs to be removed from the `loadplugin` list if it was copied over from the default `initPreConf` option.

- `nano` was removed from `environment.defaultPackages`. To not leave systems without a editor, now `programs.nano.enable` is enabled by default.

- `programs.nano.nanorc` and `programs.nano.syntaxHighlight` no longer have an effect unless `programs.nano.enable` is set to true which is the default.

- `services.outline.sequelizeArguments` has been removed, as `outline` no longer executes database migrations via the `sequelize` cli.

- The binary of the package `cloud-sql-proxy` has changed from `cloud_sql_proxy` to `cloud-sql-proxy`.
+1 −2
Original line number Diff line number Diff line
@@ -42,8 +42,7 @@ let
    ];

  defaultPackageNames =
    [ "nano"
      "perl"
    [ "perl"
      "rsync"
      "strace"
    ];
+15 −19
Original line number Diff line number Diff line
@@ -2,14 +2,16 @@

let
  cfg = config.programs.nano;
  LF = "\n";
in

{
  ###### interface

  options = {
    programs.nano = {
      enable = lib.mkEnableOption (lib.mdDoc "nano") // {
        default = true;
      };

      package = lib.mkPackageOptionMD pkgs "nano" { };

      nanorc = lib.mkOption {
        type = lib.types.lines;
@@ -24,28 +26,22 @@ in
          set tabsize 2
        '';
      };

      syntaxHighlight = lib.mkOption {
        type = lib.types.bool;
        default = true;
        default = false;
        description = lib.mdDoc "Whether to enable syntax highlight for various languages.";
      };
    };
  };

  ###### implementation

  config = lib.mkIf (cfg.nanorc != "" || cfg.syntaxHighlight) {
    environment.etc.nanorc.text = lib.concatStringsSep LF (
      ( lib.optionals cfg.syntaxHighlight [
          "# The line below is added because value of programs.nano.syntaxHighlight is set to true"
          ''include "${pkgs.nano}/share/nano/*.nanorc"''
          ""
      ])
      ++ ( lib.optionals (cfg.nanorc != "") [
        "# The lines below have been set from value of programs.nano.nanorc"
        cfg.nanorc
      ])
    );
  config = lib.mkIf cfg.enable {
    environment = {
      etc.nanorc.text = (lib.optionalString cfg.syntaxHighlight ''
        # load syntax highlighting files
        include "${cfg.package}/share/nano/*.nanorc"
      '') + cfg.nanorc;
      systemPackages = [ cfg.package ];
    };
  };

}