forked from M-Labs/it-infra
fish-nix-shell -> any-nix-shell
This commit is contained in:
parent
bb6db330c3
commit
e99fd13de5
|
@ -0,0 +1,27 @@
|
||||||
|
{ lib, stdenv, fetchFromGitHub, makeWrapper }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "any-nix-shell";
|
||||||
|
version = "1.2.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "haslersn";
|
||||||
|
repo = "any-nix-shell";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0q27rhjhh7k0qgcdcfm8ly5za6wm4rckh633d0sjz87faffkp90k";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp -r bin $out
|
||||||
|
wrapProgram $out/bin/any-nix-shell --prefix PATH ":" $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "fish and zsh support for nix-shell";
|
||||||
|
license = licenses.mit;
|
||||||
|
homepage = "https://github.com/haslersn/any-nix-shell";
|
||||||
|
maintainers = with maintainers; [ haslersn ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -50,7 +50,7 @@ in
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
virt-manager spice-gtk
|
virt-manager spice-gtk
|
||||||
(import ./fish-nix-shell)
|
(callPackage ./any-nix-shell.nix {})
|
||||||
];
|
];
|
||||||
programs.wireshark.enable = true;
|
programs.wireshark.enable = true;
|
||||||
programs.wireshark.package = pkgs.wireshark;
|
programs.wireshark.package = pkgs.wireshark;
|
||||||
|
@ -128,7 +128,7 @@ in
|
||||||
|
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
programs.fish.promptInit = ''
|
programs.fish.promptInit = ''
|
||||||
fish-nix-shell --info-right | source
|
any-nix-shell fish --info-right | source
|
||||||
'';
|
'';
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
users.defaultUserShell = pkgs.fish;
|
users.defaultUserShell = pkgs.fish;
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2018 haslersn
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
|
@ -1,50 +0,0 @@
|
||||||
# fish-nix-shell
|
|
||||||
fish support for the *nix-shell* environment of the Nix package manager.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
### Installation in the user environment
|
|
||||||
|
|
||||||
Execute
|
|
||||||
|
|
||||||
```
|
|
||||||
nix-env -if https://github.com/haslersn/fish-nix-shell/archive/master.tar.gz
|
|
||||||
```
|
|
||||||
|
|
||||||
and add the following to your *~/.config/fish/config.fish*. Create it if it doesn't exist.
|
|
||||||
|
|
||||||
```
|
|
||||||
fish-nix-shell --info-right | source
|
|
||||||
```
|
|
||||||
|
|
||||||
### System-wide installation
|
|
||||||
|
|
||||||
Add the package to your */etc/nixos/configuration.nix*:
|
|
||||||
|
|
||||||
```
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
#
|
|
||||||
# Other packages here ...
|
|
||||||
#
|
|
||||||
(import (fetchGit "https://github.com/haslersn/fish-nix-shell"))
|
|
||||||
];
|
|
||||||
```
|
|
||||||
|
|
||||||
and then execute: `sudo nixos-rebuild switch`
|
|
||||||
|
|
||||||
If you want to configure it system-wide, also add:
|
|
||||||
|
|
||||||
```
|
|
||||||
programs.fish.enable = true;
|
|
||||||
programs.fish.promptInit = ''
|
|
||||||
fish-nix-shell --info-right | source
|
|
||||||
'';
|
|
||||||
```
|
|
||||||
|
|
||||||
## Flags
|
|
||||||
|
|
||||||
The `fish-nix-shell` command **optionally** takes the following flags:
|
|
||||||
|
|
||||||
| Flag | Meaning |
|
|
||||||
| - | - |
|
|
||||||
| `--info-right` | While in a *fish-nix-shell*, display information about the loaded packages at the right.
|
|
|
@ -1,34 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
function init_fish () {
|
|
||||||
cat <<EOF
|
|
||||||
|
|
||||||
# Overwrite the nix-shell command
|
|
||||||
function nix-shell
|
|
||||||
fish-nix-shell-wrapper \$argv
|
|
||||||
set -gx FISH_NIX_SHELL_EXIT_STATUS \$status
|
|
||||||
end
|
|
||||||
EOF
|
|
||||||
for arg in "$@"; do
|
|
||||||
case "$arg" in
|
|
||||||
--info-right)
|
|
||||||
cat <<EOF
|
|
||||||
|
|
||||||
# Print additional information inside a nix-shell environment
|
|
||||||
function fish_right_prompt
|
|
||||||
nix-shell-info
|
|
||||||
set -e FISH_NIX_SHELL_EXIT_STATUS
|
|
||||||
end
|
|
||||||
EOF
|
|
||||||
;;
|
|
||||||
*) exit 1;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
cat <<EOF
|
|
||||||
# If you see this output, you probably forgot to pipe this output into 'source':
|
|
||||||
# fish-nix-shell $@ | source
|
|
||||||
EOF
|
|
||||||
|
|
||||||
init_fish "$@"
|
|
|
@ -1,22 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
fns () {
|
|
||||||
pkgs=$FISH_NIX_SHELL_PKGS
|
|
||||||
for arg in "$@"; do
|
|
||||||
if [[ $arg == -* ]]; then
|
|
||||||
pkg=
|
|
||||||
if [[ $arg == --pure ]] || [[ $arg == --command ]] || [[ $arg == --run ]]; then
|
|
||||||
command nix-shell $@
|
|
||||||
return
|
|
||||||
elif [[ $arg == -p ]] || [[ $arg == --packages ]]; then
|
|
||||||
pkg=1
|
|
||||||
fi
|
|
||||||
elif [[ $pkg == 1 ]]; then
|
|
||||||
pkgs+=" "$arg
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [[ -n $name ]] && [[ $name != shell ]]; then
|
|
||||||
pkgs+=" "$name
|
|
||||||
fi
|
|
||||||
env FISH_NIX_SHELL_PKGS="$pkgs" nix-shell "$@" --command fish
|
|
||||||
}
|
|
||||||
fns "$@"
|
|
|
@ -1,21 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
if [[ $IN_NIX_SHELL != "" ]]; then
|
|
||||||
printf "\033[1;32m"
|
|
||||||
output=$(echo $FISH_NIX_SHELL_PKGS | xargs)
|
|
||||||
if [[ -n $name ]] && [[ $name != shell ]]; then
|
|
||||||
output+=" "$name
|
|
||||||
fi
|
|
||||||
if [[ -n $output ]]; then
|
|
||||||
output=$(echo $output $additional_pkgs | tr ' ' '\n' | sort -u | tr '\n' ' ' | xargs)
|
|
||||||
printf "$output "
|
|
||||||
else
|
|
||||||
printf "[unknown nix-shell] "
|
|
||||||
fi
|
|
||||||
printf "\033[0m"
|
|
||||||
elif [[ $FISH_NIX_SHELL_EXIT_STATUS ]]; then
|
|
||||||
if [[ $FISH_NIX_SHELL_EXIT_STATUS == 0 ]]; then
|
|
||||||
printf "\033[1;36mexited nix-shell \033[0m"
|
|
||||||
else
|
|
||||||
printf "\033[1;31mERROR \033[0m"
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,16 +0,0 @@
|
||||||
with import <nixpkgs> {}; stdenv.mkDerivation rec {
|
|
||||||
name = "fish-nix-shell";
|
|
||||||
src = fetchGit "https://github.com/haslersn/fish-nix-shell";
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out
|
|
||||||
cp LICENSE $out
|
|
||||||
cp -r bin $out
|
|
||||||
wrapProgram $out/bin/fish-nix-shell
|
|
||||||
wrapProgram $out/bin/fish-nix-shell-wrapper --prefix PATH ":" ${fish}/bin
|
|
||||||
wrapProgram $out/bin/nix-shell-info
|
|
||||||
'';
|
|
||||||
meta.description = "fish support for the nix-shell environment of the Nix package manager.";
|
|
||||||
meta.license = "MIT";
|
|
||||||
meta.homepage = https://github.com/haslersn/fish-nix-shell;
|
|
||||||
}
|
|
|
@ -36,7 +36,7 @@
|
||||||
telnet unzip zip gnupg
|
telnet unzip zip gnupg
|
||||||
sublime3 rink
|
sublime3 rink
|
||||||
tmux screen tigervnc
|
tmux screen tigervnc
|
||||||
(import ./fish-nix-shell)
|
(callPackage ./any-nix-shell.nix {})
|
||||||
];
|
];
|
||||||
programs.wireshark.enable = true;
|
programs.wireshark.enable = true;
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@
|
||||||
|
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
programs.fish.promptInit = ''
|
programs.fish.promptInit = ''
|
||||||
fish-nix-shell --info-right | source
|
any-nix-shell fish --info-right | source
|
||||||
'';
|
'';
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
users.defaultUserShell = pkgs.fish;
|
users.defaultUserShell = pkgs.fish;
|
||||||
|
|
Loading…
Reference in New Issue