grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / programs / iay.nix
blobbbd401144311c1d2b9a36fe13457777e30ebfb25
1 { config, lib, pkgs, ... }:
3 let
4   cfg = config.programs.iay;
5   inherit (lib) mkEnableOption mkIf mkOption mkPackageOption optionalString types;
6 in {
7   options.programs.iay = {
8     enable = mkEnableOption "iay, a minimalistic shell prompt";
9     package = mkPackageOption pkgs "iay" {};
11     minimalPrompt = mkOption {
12       type = types.bool;
13       default = false;
14       description = "Use minimal one-liner prompt.";
15     };
16   };
18   config = mkIf cfg.enable {
19     programs.bash.promptInit = ''
20       if [[ $TERM != "dumb" && (-z $INSIDE_EMACS || $INSIDE_EMACS == "vterm") ]]; then
21         PS1='$(iay ${optionalString cfg.minimalPrompt "-m"})'
22       fi
23     '';
25     programs.zsh.promptInit = ''
26       if [[ $TERM != "dumb" && (-z $INSIDE_EMACS || $INSIDE_EMACS == "vterm") ]]; then
27         autoload -Uz add-zsh-hook
28         _iay_prompt() {
29           PROMPT="$(iay -z ${optionalString cfg.minimalPrompt "-m"})"
30         }
31         add-zsh-hook precmd _iay_prompt
32       fi
33     '';
34   };
36   meta.maintainers = pkgs.iay.meta.maintainers;