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 ]; |
||||
}; |
||||
} |
@ -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; |
||||
} |
Loading…
Reference in new issue