diff options
Diffstat (limited to 'nixpkgs/pkgs/shells')
137 files changed, 8401 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/shells/any-nix-shell/default.nix b/nixpkgs/pkgs/shells/any-nix-shell/default.nix new file mode 100644 index 000000000000..fd4807e6d675 --- /dev/null +++ b/nixpkgs/pkgs/shells/any-nix-shell/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, bash }: + +stdenv.mkDerivation rec { + pname = "any-nix-shell"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "haslersn"; + repo = "any-nix-shell"; + rev = "v${version}"; + sha256 = "0q27rhjhh7k0qgcdcfm8ly5za6wm4rckh633d0sjz87faffkp90k"; + }; + + strictDeps = true; + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ bash ]; + 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 ]; + mainProgram = "any-nix-shell"; + }; +} diff --git a/nixpkgs/pkgs/shells/bash/5.nix b/nixpkgs/pkgs/shells/bash/5.nix new file mode 100644 index 000000000000..3c4fb83e3e4e --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/5.nix @@ -0,0 +1,150 @@ +{ lib +, stdenv +, buildPackages +, fetchurl +, bison +, util-linux + + # patch for cygwin requires readline support +, interactive ? stdenv.isCygwin +, readline +, withDocs ? false +, texinfo +, forFHSEnv ? false + +, pkgsStatic +}: + +let + upstreamPatches = import ./bash-5.2-patches.nix (nr: sha256: fetchurl { + url = "mirror://gnu/bash/bash-5.2-patches/bash52-${nr}"; + inherit sha256; + }); +in +stdenv.mkDerivation rec { + name = "bash-${lib.optionalString interactive "interactive-"}${version}-p${toString (builtins.length upstreamPatches)}"; + version = "5.2"; + + src = fetchurl { + url = "mirror://gnu/bash/bash-${version}.tar.gz"; + sha256 = "sha256-oTnBZt9/9EccXgczBRZC7lVWwcyKSnjxRVg8XIGrMvs="; + }; + + hardeningDisable = [ "format" ] + # bionic libc is super weird and has issues with fortify outside of its own libc, check this comment: + # https://github.com/NixOS/nixpkgs/pull/192630#discussion_r978985593 + # or you can check libc/include/sys/cdefs.h in bionic source code + ++ lib.optional (stdenv.hostPlatform.libc == "bionic") "fortify"; + + outputs = [ "out" "dev" "man" "doc" "info" ]; + + separateDebugInfo = true; + + env.NIX_CFLAGS_COMPILE = '' + -DSYS_BASHRC="/etc/bashrc" + -DSYS_BASH_LOGOUT="/etc/bash_logout" + '' + lib.optionalString (!forFHSEnv) '' + -DDEFAULT_PATH_VALUE="/no-such-path" + -DSTANDARD_UTILS_PATH="/no-such-path" + '' + '' + -DNON_INTERACTIVE_LOGIN_SHELLS + -DSSH_SOURCE_BASHRC + ''; + + patchFlags = [ "-p0" ]; + + patches = upstreamPatches ++ [ + ./pgrp-pipe-5.patch + (fetchurl { + name = "fix-static.patch"; + url = "https://cgit.freebsd.org/ports/plain/shells/bash/files/patch-configure?id=3e147a1f594751a68fea00a28090d0792bee0b51"; + sha256 = "XHFMQ6eXTReNoywdETyrfQEv1rKF8+XFbQZP4YoVKFk="; + }) + # Apply parallel build fix pending upstream inclusion: + # https://savannah.gnu.org/patch/index.php?10373 + # Had to fetch manually to workaround -p0 default. + ./parallel.patch + ]; + + configureFlags = [ + # At least on Linux bash memory allocator has pathological performance + # in scenarios involving use of larger memory: + # https://lists.gnu.org/archive/html/bug-bash/2023-08/msg00052.html + # Various distributions default to system allocator. Let's nixpkgs + # do the same. + "--without-bash-malloc" + (if interactive then "--with-installed-readline" else "--disable-readline") + ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "bash_cv_job_control_missing=nomissing" + "bash_cv_sys_named_pipes=nomissing" + "bash_cv_getcwd_malloc=yes" + ] ++ lib.optionals stdenv.hostPlatform.isCygwin [ + "--without-libintl-prefix" + "--without-libiconv-prefix" + "--with-installed-readline" + "bash_cv_dev_stdin=present" + "bash_cv_dev_fd=standard" + "bash_cv_termcap_lib=libncurses" + ] ++ lib.optionals (stdenv.hostPlatform.libc == "musl") [ + "--disable-nls" + ]; + + strictDeps = true; + # Note: Bison is needed because the patches above modify parse.y. + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ bison ] + ++ lib.optional withDocs texinfo + ++ lib.optional stdenv.hostPlatform.isDarwin stdenv.cc.bintools; + + buildInputs = lib.optional interactive readline; + + enableParallelBuilding = true; + + makeFlags = lib.optionals stdenv.hostPlatform.isCygwin [ + "LOCAL_LDFLAGS=-Wl,--export-all,--out-implib,libbash.dll.a" + "SHOBJ_LIBS=-lbash" + ]; + + nativeCheckInputs = [ util-linux ]; + doCheck = false; # dependency cycle, needs to be interactive + + postInstall = '' + ln -s bash "$out/bin/sh" + rm -f $out/lib/bash/Makefile.inc + ''; + + postFixup = + if interactive + then '' + substituteInPlace "$out/bin/bashbug" \ + --replace '#!/bin/sh' "#!$out/bin/bash" + '' + # most space is taken by locale data + else '' + rm -rf "$out/share" "$out/bin/bashbug" + ''; + + passthru = { + shellPath = "/bin/bash"; + tests.static = pkgsStatic.bash; + }; + + meta = with lib; { + homepage = "https://www.gnu.org/software/bash/"; + description = "GNU Bourne-Again Shell, the de facto standard shell on Linux" + lib.optionalString interactive " (for interactive use)"; + longDescription = '' + Bash is the shell, or command language interpreter, that will + appear in the GNU operating system. Bash is an sh-compatible + shell that incorporates useful features from the Korn shell + (ksh) and C shell (csh). It is intended to conform to the IEEE + POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It offers + functional improvements over sh for both programming and + interactive use. In addition, most sh scripts can be run by + Bash without modification. + ''; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = with maintainers; [ dtzWill ]; + mainProgram = "bash"; + }; +} diff --git a/nixpkgs/pkgs/shells/bash/bash-5.2-patches.nix b/nixpkgs/pkgs/shells/bash/bash-5.2-patches.nix new file mode 100644 index 000000000000..e118f03e0300 --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/bash-5.2-patches.nix @@ -0,0 +1,19 @@ +# Automatically generated by `update-patch-set.sh'; do not edit. + +patch: [ +(patch "001" "02iibpd3jq8p1bhdzgik8ps6gi1145vr463a82gj1hivjbp2ybzl") +(patch "002" "1f6p1z85qh1lavdp3xikgp0bfv0vqhvgpgwmdzlywl35hwdmxk25") +(patch "003" "1zxsi869jd90hksx3nyypgyqwrxhw2ws3r6hmk76yc1lsgdhq2ba") +(patch "004" "04i5liw5cg6dqkdxfgazqc2jrw40bmclx3dx45bwy259pcj7g0iq") +(patch "005" "0mykflv9qnbx3jz71l4f7isadiw9knm4qimqkwsv9cv88dafpq7c") +(patch "006" "13265akl8w6zyrg0l7f0x6arjgqjhllcwl6lk46rl53x4mm5dq6i") +(patch "007" "146lrwkn5wgxzs6vx34wl47g69zsxdy032k40qzi626b47ya6015") +(patch "008" "1s5i8hcayrv25lc8fxcr431v634yx5sii53b8fmip789s0pxjjvb") +(patch "009" "1kfk25151ka9wkmk1myf12irgcmvhsd8b0nfifvhrszah9w82npr") +(patch "010" "1kf1jrwm30js0v3d1r2rk4x09s1pyjp70wnd1qqhf9bmkw15ww67") +(patch "011" "1x5nkvbj6hci7gx42q7qa72hg2a9wwxh85dk79gn521ypwjmy6w3") +(patch "012" "0b6lcwzm7v5bzjiwaz2c8n5aj77w8ckhp2vwk4v3zsdq3z70gc9g") +(patch "013" "1rkwpibd6j2ghppfhqsva2jm4kdni6b7jpdsxdps52643gc4yjq9") +(patch "014" "09766vqqw4ffnmysm725v35qkhp1g9j4qgqag941xvq655pj9y9y") +(patch "015" "12im449abnq5gaqjmdxr5i38kmp02fa8l8wffad3jryvd58r0wzg") +] diff --git a/nixpkgs/pkgs/shells/bash/bash-completion/default.nix b/nixpkgs/pkgs/shells/bash/bash-completion/default.nix new file mode 100644 index 000000000000..a909d9461e74 --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/bash-completion/default.nix @@ -0,0 +1,74 @@ +{ lib, stdenv, fetchurl +, fetchpatch +, autoreconfHook +, perl +, ps +, python3Packages +, bashInteractive +}: + +stdenv.mkDerivation rec { + pname = "bash-completion"; + version = "2.11"; + + # Using fetchurl because fetchGithub or fetchzip will have trouble on + # e.g. APFS filesystems (macOS) because of non UTF-8 characters in some of the + # test fixtures that are part of the repository. + # See discussion in https://github.com/NixOS/nixpkgs/issues/107768 + src = fetchurl { + url = "https://github.com/scop/${pname}/releases/download/${version}/${pname}-${version}.tar.xz"; + sha256 = "1b0iz7da1sgifx1a5wdyx1kxbzys53v0kyk8nhxfipllmm5qka3k"; + }; + + strictDeps = true; + nativeBuildInputs = [ autoreconfHook ]; + + # tests are super flaky unfortunately, and regularly break. + # let's disable them for now. + doCheck = false; + nativeCheckInputs = [ + # perl is assumed by perldoc completion + perl + # ps assumed to exist by gdb, killall, pgrep, pidof, + # pkill, pwdx, renice, and reptyr completions + ps + python3Packages.pexpect + python3Packages.pytest + bashInteractive + ]; + + # - ignore test_gcc on ARM because it assumes -march=native + # - ignore test_chsh because it assumes /etc/shells exists + # - ignore test_ether_wake, test_ifdown, test_ifstat, test_ifup, + # test_iperf, test_iperf3, test_nethogs and ip_addresses + # because they try to touch network + # - ignore test_ls because impure logic + # - ignore test_screen because it assumes vt terminals exist + checkPhase = '' + pytest . \ + ${lib.optionalString stdenv.hostPlatform.isAarch "--ignore=test/t/test_gcc.py"} \ + --ignore=test/t/test_chsh.py \ + --ignore=test/t/test_ether_wake.py \ + --ignore=test/t/test_ifdown.py \ + --ignore=test/t/test_ifstat.py \ + --ignore=test/t/test_ifup.py \ + --ignore=test/t/test_iperf.py \ + --ignore=test/t/test_iperf3.py \ + --ignore=test/t/test_nethogs.py \ + --ignore=test/t/unit/test_unit_ip_addresses.py \ + --ignore=test/t/test_ls.py \ + --ignore=test/t/test_screen.py + ''; + + prePatch = lib.optionalString stdenv.isDarwin '' + sed -i -e 's/readlink -f/readlink/g' bash_completion completions/* + ''; + + meta = with lib; { + homepage = "https://github.com/scop/bash-completion"; + description = "Programmable completion for the bash shell"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = [ maintainers.xfix ]; + }; +} diff --git a/nixpkgs/pkgs/shells/bash/blesh/default.nix b/nixpkgs/pkgs/shells/bash/blesh/default.nix new file mode 100644 index 000000000000..9428703e7a2d --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/blesh/default.nix @@ -0,0 +1,61 @@ +{ lib +, stdenvNoCC +, fetchzip +, runtimeShell +, bashInteractive +, glibcLocales +}: + +stdenvNoCC.mkDerivation rec { + pname = "blesh"; + version = "0.4.0-devel3"; + + src = fetchzip { + url = "https://github.com/akinomyoga/ble.sh/releases/download/v${version}/ble-${version}.tar.xz"; + sha256 = "sha256-kGLp8RaInYSrJEi3h5kWEOMAbZV/gEPFUjOLgBuMhCI="; + }; + + dontBuild = true; + + doCheck = true; + nativeCheckInputs = [ bashInteractive glibcLocales ]; + preCheck = "export LC_ALL=en_US.UTF-8"; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/share/blesh/lib" + + cat <<EOF >"$out/share/blesh/lib/_package.sh" + _ble_base_package_type=nix + + function ble/base/package:nix/update { + echo "Ble.sh is installed by Nix. You can update it there." >&2 + return 1 + } + EOF + + cp -rv $src/* $out/share/blesh + + runHook postInstall + ''; + + postInstall = '' + mkdir -p "$out/bin" + cat <<EOF >"$out/bin/blesh-share" + #!${runtimeShell} + # Run this script to find the ble.sh shared folder + # where all the shell scripts are living. + echo "$out/share/blesh" + EOF + chmod +x "$out/bin/blesh-share" + ''; + + meta = with lib; { + homepage = "https://github.com/akinomyoga/ble.sh"; + description = "Bash Line Editor -- a full-featured line editor written in pure Bash"; + license = licenses.bsd3; + maintainers = with maintainers; [ aiotter ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/bash/fzf-obc/default.nix b/nixpkgs/pkgs/shells/bash/fzf-obc/default.nix new file mode 100644 index 000000000000..7621ae8c73c0 --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/fzf-obc/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "fzf-obc"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "rockandska"; + repo = pname; + rev = version; + sha256 = "sha256-KIAlDpt1Udl+RLp3728utgQ9FCjZz/OyoG92MOJmgPI="; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/fzf-obc/{bin,lib/fzf-obc,plugins/{kill,gradle}} + install -m644 bin/* $out/share/fzf-obc/bin + install -m644 lib/fzf-obc/* $out/share/fzf-obc/lib/fzf-obc + install -m644 plugins/kill/* $out/share/fzf-obc/plugins/kill + install -m644 plugins/gradle/* $out/share/fzf-obc/plugins/gradle + ''; + + meta = with lib; { + homepage = "https://fzf-obc.readthedocs.io"; + description = "Completion script adding fzf over all know bash completion functions"; + license = licenses.unfree; + maintainers = with maintainers; [ loicreynier ]; + }; +} diff --git a/nixpkgs/pkgs/shells/bash/nix-bash-completions/default.nix b/nixpkgs/pkgs/shells/bash/nix-bash-completions/default.nix new file mode 100644 index 000000000000..af516a1bcaa5 --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/nix-bash-completions/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + version = "0.6.8"; + pname = "nix-bash-completions"; + + src = fetchFromGitHub { + owner = "hedning"; + repo = "nix-bash-completions"; + rev = "v${version}"; + sha256 = "1n5zs6xcnv4bv1hdaypmz7fv4j7dsr4a0ifah99iyj4p5j85i1bc"; + }; + + postPatch = '' + # Nix 2.4+ provides its own completion for the nix command, see https://github.com/hedning/nix-bash-completions/issues/20 + substituteInPlace _nix --replace 'nix nixos-option' 'nixos-option' + ''; + + strictDeps = true; + # To enable lazy loading via bash-completion we need a symlink to the script + # from every command name. + installPhase = '' + runHook preInstall + + commands=$( + function complete() { shift 2; echo "$@"; } + shopt -s extglob + source _nix + ) + install -Dm444 -t $out/share/bash-completion/completions _nix + cd $out/share/bash-completion/completions + for c in $commands; do + ln -s _nix $c + done + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/hedning/nix-bash-completions"; + description = "Bash completions for Nix, NixOS, and NixOps"; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = with maintainers; [ hedning ncfavier ]; + # Set a lower priority such that Nix wins in case of conflicts. + priority = 10; + }; +} diff --git a/nixpkgs/pkgs/shells/bash/parallel.patch b/nixpkgs/pkgs/shells/bash/parallel.patch new file mode 100644 index 000000000000..d9a0cc28ce04 --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/parallel.patch @@ -0,0 +1,12 @@ +From https://savannah.gnu.org/patch/index.php?10373 + https://savannah.gnu.org/patch/download.php?file_id=54964 +--- Makefile.in ++++ Makefile.in +@@ -1432,6 +1432,7 @@ siglist.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + subst.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + test.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + trap.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h ++unwind_prot.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + variables.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + version.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + xmalloc.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h diff --git a/nixpkgs/pkgs/shells/bash/pgrp-pipe-5.patch b/nixpkgs/pkgs/shells/bash/pgrp-pipe-5.patch new file mode 100644 index 000000000000..71b397901cb0 --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/pgrp-pipe-5.patch @@ -0,0 +1,15 @@ +--- ./configure 2022-12-20 17:13:17.804045620 +0100 ++++ ./configure-fixed 2022-12-20 17:16:00.444114824 +0100 +@@ -21723,11 +21723,7 @@ + solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +- case "`uname -r`" in +- 1.*|2.[0123]*) : ;; +- *) printf "%s\n" "#define PGRP_PIPE 1" >>confdefs.h +- ;; +- esac ;; ++ printf "%s\n" "#define PGRP_PIPE 1" >>confdefs.h ;; + netbsd*|openbsd*) LOCAL_CFLAGS="-DDEV_FD_STAT_BROKEN" ;; + freebsd*|midnightbsd*) LOCAL_CFLAGS='-DHEREDOC_PIPESIZE=4096' ;; + *qnx[67]*) LOCAL_LIBS="-lncurses" ;; diff --git a/nixpkgs/pkgs/shells/bash/undistract-me/default.nix b/nixpkgs/pkgs/shells/bash/undistract-me/default.nix new file mode 100644 index 000000000000..b15903e779ea --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/undistract-me/default.nix @@ -0,0 +1,81 @@ +{ lib +, stdenvNoCC +, fetchFromGitHub +, fetchpatch +, coreutils +, gnused +, libnotify +, pulseaudio +, sound-theme-freedesktop +, xprop +}: + +stdenvNoCC.mkDerivation rec { + pname = "undistract-me"; + version = "unstable-2020-08-09"; + + src = fetchFromGitHub { + owner = "jml"; + repo = pname; + rev = "2f8ac25c6ad8efcf160d2b480825b1cbb6772aab"; + hash = "sha256-Qw7Cu9q0ZgK/RTvyDdHM5N3eBaKjtYqYH0J+hKMUZX8="; + }; + + patches = [ + # Don't block the terminal when notification sound is played + # + # See https://github.com/jml/undistract-me/pull/69 + (fetchpatch { + url = "https://github.com/jml/undistract-me/commit/2356ebbe8bf2bcb4b95af1ae2bcdc786ce7cc6e8.patch"; + sha256 = "sha256-Ij3OXTOnIQsYhKVmqjChhN1q4ASZ7waOkfQTTp5XfPo="; + }) + + # Fix showing notifications when using Wayland apps with XWayland + # running, or connection to X server fails. + # + # NOTE: Without a real X server, notifications will not be + # suppressed when the window running the command is focused. + # + # See https://github.com/jml/undistract-me/pull/71 + (fetchpatch { + url = "https://github.com/jml/undistract-me/commit/3f4ceaf5a4eba8e3cb02236c48247f87e3d1124f.patch"; + sha256 = "sha256-9AK9Jp3TXJ75Y+jwZXlwQ6j54FW1rOBddoktrm0VX68="; + }) + ]; + + strictDeps = true; + + # Patch in dependencies. Can't use makeWrapper because the bash + # functions will be sourced and invoked in a different environment + # for each command invocation. + postPatch = '' + for script in *.bash *.sh; do + substituteInPlace "$script" \ + --replace /usr/share/undistract-me "$out/share/undistract-me" \ + --replace basename ${coreutils}/bin/basename \ + --replace 'cut ' '${coreutils}/bin/cut ' \ + --replace date ${coreutils}/bin/date \ + --replace dirname ${coreutils}/bin/dirname \ + --replace sed ${gnused}/bin/sed \ + --replace notify-send ${libnotify}/bin/notify-send \ + --replace paplay ${pulseaudio}/bin/paplay \ + --replace /usr/share/sounds/freedesktop ${sound-theme-freedesktop}/share/sounds/freedesktop \ + --replace xprop ${xprop}/bin/xprop + done + ''; + + installPhase = '' + mkdir -p "$out/share/undistract-me" "$out/etc/profile.d" "$out/share/licenses/undistract-me" + cp long-running.bash "$out/share/undistract-me" + cp preexec.bash "$out/share/undistract-me" + cp undistract-me.sh "$out/etc/profile.d" + cp LICENSE "$out/share/licenses/undistract-me" + ''; + + meta = with lib; { + description = "Notifies you when long-running terminal commands complete"; + homepage = "https://github.com/jml/undistract-me"; + license = licenses.mit; + maintainers = with maintainers; [ kira-bruneau ]; + }; +} diff --git a/nixpkgs/pkgs/shells/bash/update-patch-set.sh b/nixpkgs/pkgs/shells/bash/update-patch-set.sh new file mode 100755 index 000000000000..ee785cc83123 --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/update-patch-set.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env nix-shell +#!nix-shell --pure -i bash -p wget -p gnupg -p cacert -p nix + +# Update patch set for GNU Bash or Readline. + +if [ $# -ne 2 ] +then + echo "Usage: $(basename "$0") PROJECT VERSION" + echo "" + echo "Update the patch set for PROJECT (one of \`bash' or \`readline') for" + echo "the given version (e.g., \`4.0'). Produce \`PROJECT-patches.nix'." + exit 1 +fi + +PROJECT="$1" +VERSION="$2" +DIR=$(dirname "$0") +VERSION_CONDENSED="$(echo "$VERSION" | sed -es/\\.//g)" +PATCH_LIST="$DIR/$PROJECT-$VERSION-patches.nix" + +set -e + +rm -vf "$PATCH_LIST" + +wget "https://tiswww.case.edu/php/chet/gpgkey.asc" +echo "4ef5051ce7200241e65d29c11eb57df8 gpgkey.asc" > gpgkey.asc.md5 +md5sum -c gpgkey.asc.md5 +gpg --import ./gpgkey.asc +rm gpgkey.asc{,.md5} + +( echo "# Automatically generated by \`$(basename "$0")'; do not edit." ; \ + echo "" ; \ + echo "patch: [" ) \ +>> "$PATCH_LIST" + +for i in {001..100} +do + wget -P "$DIR" "ftp.gnu.org/gnu/$PROJECT/$PROJECT-$VERSION-patches/$PROJECT$VERSION_CONDENSED-$i" || break + wget -P "$DIR" "ftp.gnu.org/gnu/$PROJECT/$PROJECT-$VERSION-patches/$PROJECT$VERSION_CONDENSED-$i.sig" + gpg --verify "$DIR/$PROJECT$VERSION_CONDENSED-$i.sig" + hash=$(nix-hash --flat --type sha256 --base32 "$DIR/$PROJECT$VERSION_CONDENSED-$i") + echo "(patch \"$i\" \"$hash\")" \ + >> "$PATCH_LIST" + + rm -f "$DIR/$PROJECT$VERSION_CONDENSED-$i"{,.sig} +done + +echo "]" >> "$PATCH_LIST" + +# bash interprets numbers starting with 0 as octals +echo "Got $((10#$i - 1)) patches." +echo "Patch list has been written to \`$PATCH_LIST'." diff --git a/nixpkgs/pkgs/shells/bash/yarn-completion/default.nix b/nixpkgs/pkgs/shells/bash/yarn-completion/default.nix new file mode 100644 index 000000000000..48d1f42b5ced --- /dev/null +++ b/nixpkgs/pkgs/shells/bash/yarn-completion/default.nix @@ -0,0 +1,35 @@ +{ lib +, stdenv +, fetchFromGitHub +, installShellFiles +}: + +stdenv.mkDerivation rec { + pname = "yarn-bash-completion"; + version = "0.17.0"; + + src = fetchFromGitHub { + owner = "dsifford"; + repo = "yarn-completion"; + rev = "v${version}"; + sha256 = "0xflbrbwskjqv3knvc8jqygpvfxh5ak66q7w22d1ng8gwrfqzcng"; + }; + + strictDeps = true; + nativeBuildInputs = [ installShellFiles ]; + + installPhase = '' + runHook preInstall + + installShellCompletion --cmd yarn ./yarn-completion.bash + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/dsifford/yarn-completion/"; + description = "Bash completion for Yarn"; + license = licenses.mit; + maintainers = with maintainers; [ DamienCassou ]; + }; +} diff --git a/nixpkgs/pkgs/shells/carapace/default.nix b/nixpkgs/pkgs/shells/carapace/default.nix new file mode 100644 index 000000000000..0d50270dafdc --- /dev/null +++ b/nixpkgs/pkgs/shells/carapace/default.nix @@ -0,0 +1,39 @@ +{ lib, buildGoModule, fetchFromGitHub, testers, carapace }: + +buildGoModule rec { + pname = "carapace"; + version = "0.28.2"; + + src = fetchFromGitHub { + owner = "rsteube"; + repo = "${pname}-bin"; + rev = "v${version}"; + hash = "sha256-ojcQ69FxU7luxYzKxnblwQgX0sapFJS8YNalMdTuzCo="; + }; + + vendorHash = "sha256-jbKF68fPwMigKSoSOP6pJMjn+PW2yeI/oZKv2ytoHuY="; + + ldflags = [ + "-s" + "-w" + "-X main.version=${version}" + ]; + + subPackages = [ "./cmd/carapace" ]; + + tags = [ "release" ]; + + preBuild = '' + go generate ./... + ''; + + passthru.tests.version = testers.testVersion { package = carapace; }; + + meta = with lib; { + description = "Multi-shell multi-command argument completer"; + homepage = "https://rsteube.github.io/carapace-bin/"; + maintainers = with maintainers; [ star-szr ]; + license = licenses.mit; + mainProgram = "carapace"; + }; +} diff --git a/nixpkgs/pkgs/shells/dash/default.nix b/nixpkgs/pkgs/shells/dash/default.nix new file mode 100644 index 000000000000..6bdbd1798e3d --- /dev/null +++ b/nixpkgs/pkgs/shells/dash/default.nix @@ -0,0 +1,53 @@ +{ lib +, stdenv +, buildPackages +, pkg-config +, fetchurl +, libedit +, runCommand +, dash +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "dash"; + version = "0.5.12"; + + src = fetchurl { + url = "http://gondor.apana.org.au/~herbert/dash/files/dash-${finalAttrs.version}.tar.gz"; + hash = "sha256-akdKxG6LCzKRbExg32lMggWNMpfYs4W3RQgDDKSo8oo="; + }; + + strictDeps = true; + + nativeBuildInputs = lib.optionals stdenv.hostPlatform.isStatic [ pkg-config ]; + + depsBuildBuild = [ buildPackages.stdenv.cc ]; + buildInputs = [ libedit ]; + + configureFlags = [ "--with-libedit" ]; + preConfigure = lib.optional stdenv.hostPlatform.isStatic '' + export LIBS="$(''${PKG_CONFIG:-pkg-config} --libs --static libedit)" + ''; + + enableParallelBuilding = true; + + passthru = { + shellPath = "/bin/dash"; + tests = { + "execute-simple-command" = runCommand "dash-execute-simple-command" { } '' + mkdir $out + ${lib.getExe dash} -c 'echo "Hello World!" > $out/success' + [ -s $out/success ] + grep -q "Hello World" $out/success + ''; + }; + }; + + meta = with lib; { + homepage = "http://gondor.apana.org.au/~herbert/dash/"; + description = "A POSIX-compliant implementation of /bin/sh that aims to be as small as possible"; + platforms = platforms.unix; + license = with licenses; [ bsd3 gpl2 ]; + mainProgram = "dash"; + }; +}) diff --git a/nixpkgs/pkgs/shells/dgsh/default.nix b/nixpkgs/pkgs/shells/dgsh/default.nix new file mode 100644 index 000000000000..2c98938b46d7 --- /dev/null +++ b/nixpkgs/pkgs/shells/dgsh/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config, + libtool, check, bison, git, gperf, + perl, texinfo, help2man, gettext, ncurses +}: + +stdenv.mkDerivation { + pname = "dgsh-unstable"; + version = "2017-02-05"; + + src = fetchFromGitHub { + owner = "dspinellis"; + repo = "dgsh"; + rev = "bc4fc2e8009c069ee4df5140c32a2fc15d0acdec"; + sha256 = "0k3hmnarz56wphw45mabn5zcc427l5p77jldh1qqy89pxqy1wnql"; + fetchSubmodules = true; + }; + + patches = [ ./glibc-2.26.patch ]; + + nativeBuildInputs = [ autoconf automake pkg-config libtool check + bison git gettext gperf perl texinfo help2man ncurses + ]; + + configurePhase = '' + cp -r ./unix-tools/coreutils/gnulib gnulib + perl -pi -e \ + 's#./bootstrap #./bootstrap --no-bootstrap-sync --skip-po --no-git --gnulib-srcdir='$PWD/gnulib' #g' \ + unix-tools/Makefile + find . -name \*.diff | xargs rm -f + rm -rf unix-tools/*/gnulib + patchShebangs unix-tools/diffutils/man/help2man + export RSYNC=true # set to rsync binary, eventhough it is not used. + make PREFIX=$out config + ''; + + enableParallelBuilding = true; + + meta = with lib; { + description = "The Directed Graph Shell"; + homepage = "http://www.dmst.aueb.gr/dds/sw/dgsh"; + license = with licenses; asl20; + maintainers = with maintainers; [ vrthra ]; + platforms = with platforms; all; + # lib/freadseek.c:68:3: error: #error "Please port gnulib freadseek.c to your platform! Look at the definition of getc, getc_unlocked on your > + # 68 | #error "Please port gnulib freadseek.c to your platform! Look at the definition of getc, getc_unlocked on your system, then report > + broken = true; # marked 2022-05-06 + }; +} diff --git a/nixpkgs/pkgs/shells/dgsh/glibc-2.26.patch b/nixpkgs/pkgs/shells/dgsh/glibc-2.26.patch new file mode 100644 index 000000000000..c66768151316 --- /dev/null +++ b/nixpkgs/pkgs/shells/dgsh/glibc-2.26.patch @@ -0,0 +1,12 @@ +diff --git a/core-tools/src/dgsh-httpval.c b/core-tools/src/dgsh-httpval.c +index 8b5dce3..7b43c3d 100644 +--- a/core-tools/src/dgsh-httpval.c ++++ b/core-tools/src/dgsh-httpval.c +@@ -40,6 +40,7 @@ + #include <sys/stat.h> + #include <unistd.h> + #include <stdlib.h> ++#include <stdint.h> + #include <stdio.h> + #include <string.h> + #include <ctype.h> diff --git a/nixpkgs/pkgs/shells/es/default.nix b/nixpkgs/pkgs/shells/es/default.nix new file mode 100644 index 000000000000..308a684e6f68 --- /dev/null +++ b/nixpkgs/pkgs/shells/es/default.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchurl, readline, bison }: + +stdenv.mkDerivation rec { + + pname = "es"; + version = "0.9.2"; + + src = fetchurl { + url = "https://github.com/wryun/es-shell/releases/download/v${version}/es-${version}.tar.gz"; + sha256 = "sha256-ySZIK0IITpA+uHHuHrDO/Ana5vGt64QI3Z6TMDXE9d0="; + }; + + # The distribution tarball does not have a single top-level directory. + preUnpack = '' + mkdir $name + cd $name + sourceRoot=. + ''; + + strictDeps = true; + nativeBuildInputs = [ bison ]; + buildInputs = [ readline ]; + + configureFlags = [ "--with-readline" ]; + + meta = with lib; { + description = "An extensible shell with higher order functions"; + longDescription = + '' + Es is an extensible shell. The language was derived + from the Plan 9 shell, rc, and was influenced by + functional programming languages, such as Scheme, + and the Tcl embeddable programming language. + ''; + homepage = "http://wryun.github.io/es-shell/"; + license = licenses.publicDomain; + maintainers = with maintainers; [ sjmackenzie ttuegel ]; + platforms = platforms.all; + }; + + passthru = { + shellPath = "/bin/es"; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/babelfish.nix b/nixpkgs/pkgs/shells/fish/babelfish.nix new file mode 100644 index 000000000000..9af0c2ce9138 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/babelfish.nix @@ -0,0 +1,21 @@ +{ lib, buildGoModule, fetchFromGitHub }: +buildGoModule rec { + pname = "babelfish"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "bouk"; + repo = "babelfish"; + rev = "v${version}"; + sha256 = "sha256-/rWX77n9wqWxkHG7gVOinCJ6ahuEfbAcGijC1oAxrno="; + }; + + vendorHash = "sha256-HY9ejLfT6gj3vUMSzbNZ4QlpB+liigTtNDBNWCy8X38="; + + meta = with lib; { + description = "Translate bash scripts to fish"; + homepage = "https://github.com/bouk/babelfish"; + license = licenses.mit; + maintainers = with maintainers; [ bouk kevingriffin ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/default.nix b/nixpkgs/pkgs/shells/fish/default.nix new file mode 100644 index 000000000000..1fa5b9c6151a --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/default.nix @@ -0,0 +1,345 @@ +{ stdenv +, lib +, fetchurl +, fetchpatch +, coreutils +, which +, gnused +, gnugrep +, groff +, gawk +, man-db +, getent +, libiconv +, pcre2 +, gettext +, ncurses +, python3 +, cmake +, fishPlugins +, procps + +# used to generate autocompletions from manpages and for configuration editing in the browser +, usePython ? true + +, runCommand +, writeText +, nixosTests +, nix-update-script +, useOperatingSystemEtc ? true + # An optional string containing Fish code that initializes the environment. + # This is run at the very beginning of initialization. If it sets $NIX_PROFILES + # then Fish will use that to configure its function, completion, and conf.d paths. + # For example: + # fishEnvPreInit = "source /etc/fish/my-env-preinit.fish"; + # It can also be a function that takes one argument, which is a function that + # takes a path to a bash file and converts it to fish. For example: + # fishEnvPreInit = source: source "${nix}/etc/profile.d/nix-daemon.sh"; +, fishEnvPreInit ? null +}: +let + etcConfigAppendix = writeText "config.fish.appendix" '' + ############### ↓ Nix hook for sourcing /etc/fish/config.fish ↓ ############### + # # + # Origin: + # This fish package was called with the attribute + # "useOperatingSystemEtc = true;". + # + # Purpose: + # Fish ordinarily sources /etc/fish/config.fish as + # $__fish_sysconfdir/config.fish, + # and $__fish_sysconfdir is defined at compile-time, baked into the C++ + # component of fish. By default, it is set to "/etc/fish". When building + # through Nix, $__fish_sysconfdir gets set to $out/etc/fish. Here we may + # have included a custom $out/etc/config.fish in the fish package, + # as specified, but according to the value of useOperatingSystemEtc, we + # may want to further source the real "/etc/fish/config.fish" file. + # + # When this option is enabled, this segment should appear the very end of + # "$out/etc/config.fish". This is to emulate the behavior of fish itself + # with respect to /etc/fish/config.fish and ~/.config/fish/config.fish: + # source both, but source the more global configuration files earlier + # than the more local ones, so that more local configurations inherit + # from but override the more global locations. + # + # Special care needs to be taken, when fish is called from an FHS user env + # or similar setup, because this configuration file will then be relocated + # to /etc/fish/config.fish, so we test for this case to avoid nontermination. + + if test -f /etc/fish/config.fish && test /etc/fish/config.fish != (status filename) + source /etc/fish/config.fish + end + + # # + ############### ↑ Nix hook for sourcing /etc/fish/config.fish ↑ ############### + ''; + + fishPreInitHooks = writeText "__fish_build_paths_suffix.fish" '' + # source nixos environment + # note that this is required: + # 1. For all shells, not just login shells (mosh needs this as do some other command-line utilities) + # 2. Before the shell is initialized, so that config snippets can find the commands they use on the PATH + builtin status is-login + or test -z "$__fish_nixos_env_preinit_sourced" -a -z "$ETC_PROFILE_SOURCED" -a -z "$ETC_ZSHENV_SOURCED" + ${if fishEnvPreInit != null then '' + and begin + ${lib.removeSuffix "\n" (if lib.isFunction fishEnvPreInit then fishEnvPreInit sourceWithFenv else fishEnvPreInit)} + end'' else '' + and test -f /etc/fish/nixos-env-preinit.fish + and source /etc/fish/nixos-env-preinit.fish''} + and set -gx __fish_nixos_env_preinit_sourced 1 + + test -n "$NIX_PROFILES" + and begin + # We ensure that __extra_* variables are read in $__fish_datadir/config.fish + # with a preference for user-configured data by making sure the package-specific + # data comes last. Files are loaded/sourced in encounter order, duplicate + # basenames get skipped, so we assure this by prepending Nix profile paths + # (ordered in reverse of the $NIX_PROFILE variable) + # + # Note that at this point in evaluation, there is nothing whatsoever on the + # fish_function_path. That means we don't have most fish builtins, e.g., `eval`. + + + # additional profiles are expected in order of precedence, which means the reverse of the + # NIX_PROFILES variable (same as config.environment.profiles) + set -l __nix_profile_paths (string split ' ' $NIX_PROFILES)[-1..1] + + set -p __extra_completionsdir \ + $__nix_profile_paths"/etc/fish/completions" \ + $__nix_profile_paths"/share/fish/vendor_completions.d" + set -p __extra_functionsdir \ + $__nix_profile_paths"/etc/fish/functions" \ + $__nix_profile_paths"/share/fish/vendor_functions.d" + set -p __extra_confdir \ + $__nix_profile_paths"/etc/fish/conf.d" \ + $__nix_profile_paths"/share/fish/vendor_conf.d" + end + ''; + + # This is wrapped in begin/end in case the user wants to apply redirections. + # This does mean the basic usage of sourcing a single file will produce + # `begin; begin; …; end; end` but that's ok. + sourceWithFenv = path: '' + begin # fenv + # This happens before $__fish_datadir/config.fish sets fish_function_path, so it is currently + # unset. We set it and then completely erase it, leaving its configuration to $__fish_datadir/config.fish + set fish_function_path ${fishPlugins.foreign-env}/share/fish/vendor_functions.d $__fish_datadir/functions + fenv source ${lib.escapeShellArg path} + set -l fenv_status $status + # clear fish_function_path so that it will be correctly set when we return to $__fish_datadir/config.fish + set -e fish_function_path + test $fenv_status -eq 0 + end # fenv + ''; + + fish = stdenv.mkDerivation rec { + pname = "fish"; + version = "3.6.1"; + + src = fetchurl { + # There are differences between the release tarball and the tarball GitHub + # packages from the tag. Specifically, it comes with a file containing its + # version, which is used in `build_tools/git_version_gen.sh` to determine + # the shell's actual version (and what it displays when running `fish + # --version`), as well as the local documentation for all builtins (and + # maybe other things). + url = "https://github.com/fish-shell/fish-shell/releases/download/${version}/${pname}-${version}.tar.xz"; + hash = "sha256-VUArtHymc52KuiXkF4CQW1zhvOCl4N0X3KkItbwLSbI="; + }; + + # Fix FHS paths in tests + postPatch = '' + # src/fish_tests.cpp + sed -i 's|/bin/ls|${coreutils}/bin/ls|' src/fish_tests.cpp + sed -i 's|is_potential_path(L"/usr"|is_potential_path(L"/nix"|' src/fish_tests.cpp + sed -i 's|L"/bin/echo"|L"${coreutils}/bin/echo"|' src/fish_tests.cpp + sed -i 's|L"/bin/c"|L"${coreutils}/bin/c"|' src/fish_tests.cpp + sed -i 's|L"/bin/ca"|L"${coreutils}/bin/ca"|' src/fish_tests.cpp + + # tests/checks/cd.fish + sed -i 's|/bin/pwd|${coreutils}/bin/pwd|' tests/checks/cd.fish + + # tests/checks/redirect.fish + sed -i 's|/bin/echo|${coreutils}/bin/echo|' tests/checks/redirect.fish + + # tests/checks/vars_as_commands.fish + sed -i 's|/usr/bin|${coreutils}/bin|' tests/checks/vars_as_commands.fish + + # tests/checks/jobs.fish + sed -i 's|ps -o stat|${procps}/bin/ps -o stat|' tests/checks/jobs.fish + sed -i 's|/bin/echo|${coreutils}/bin/echo|' tests/checks/jobs.fish + + # tests/checks/job-control-noninteractive.fish + sed -i 's|/bin/echo|${coreutils}/bin/echo|' tests/checks/job-control-noninteractive.fish + + # tests/checks/complete.fish + sed -i 's|/bin/ls|${coreutils}/bin/ls|' tests/checks/complete.fish + '' + lib.optionalString stdenv.isDarwin '' + # Tests use pkill/pgrep which are currently not built on Darwin + # See https://github.com/NixOS/nixpkgs/pull/103180 + rm tests/pexpects/exit.py + rm tests/pexpects/job_summary.py + rm tests/pexpects/signals.py + + # pexpect tests are flaky in general + # See https://github.com/fish-shell/fish-shell/issues/8789 + rm tests/pexpects/bind.py + '' + lib.optionalString stdenv.isLinux '' + # pexpect tests are flaky on aarch64-linux (also x86_64-linux) + # See https://github.com/fish-shell/fish-shell/issues/8789 + rm tests/pexpects/exit_handlers.py + ''; + + outputs = [ "out" "doc" ]; + strictDeps = true; + nativeBuildInputs = [ + cmake + gettext + ]; + + buildInputs = [ + ncurses + libiconv + pcre2 + ]; + + cmakeFlags = [ + "-DCMAKE_INSTALL_DOCDIR=${placeholder "doc"}/share/doc/fish" + ] ++ lib.optionals stdenv.isDarwin [ + "-DMAC_CODESIGN_ID=OFF" + ]; + + # Fish’s test suite needs to be able to look up process information and send signals. + sandboxProfile = lib.optionalString stdenv.isDarwin '' + (allow mach-lookup mach-task-name) + (allow signal (target children)) + ''; + + # The optional string is kind of an inelegant way to get fish to cross compile. + # Fish needs coreutils as a runtime dependency, and it gets put into + # CMAKE_PREFIX_PATH, which cmake uses to look up build time programs, so it + # was clobbering the PATH. It probably needs to be fixed at a lower level. + preConfigure = '' + patchShebangs ./build_tools/git_version_gen.sh + '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + export CMAKE_PREFIX_PATH= + ''; + + # Required binaries during execution + propagatedBuildInputs = [ + coreutils + gnugrep + gnused + groff + gettext + ] ++ lib.optional (!stdenv.isDarwin) man-db; + + doCheck = true; + + nativeCheckInputs = [ + coreutils + (python3.withPackages (ps: [ ps.pexpect ])) + procps + ]; + + checkPhase = '' + make test + ''; + + postInstall = with lib; '' + sed -r "s|command grep|command ${gnugrep}/bin/grep|" \ + -i "$out/share/fish/functions/grep.fish" + sed -e "s|\|cut|\|${coreutils}/bin/cut|" \ + -i "$out/share/fish/functions/fish_prompt.fish" + sed -e "s|uname|${coreutils}/bin/uname|" \ + -i "$out/share/fish/functions/__fish_pwd.fish" \ + "$out/share/fish/functions/prompt_pwd.fish" + sed -e "s|sed |${gnused}/bin/sed |" \ + -i "$out/share/fish/functions/alias.fish" \ + "$out/share/fish/functions/prompt_pwd.fish" + sed -i "s|nroff|${groff}/bin/nroff|" \ + "$out/share/fish/functions/__fish_print_help.fish" + sed -e "s|clear;|${getBin ncurses}/bin/clear;|" \ + -i "$out/share/fish/functions/fish_default_key_bindings.fish" + sed -i "s|/usr/local/sbin /sbin /usr/sbin||" \ + $out/share/fish/completions/{sudo.fish,doas.fish} + sed -e "s| awk | ${gawk}/bin/awk |" \ + -i $out/share/fish/functions/{__fish_print_packages.fish,__fish_print_addresses.fish,__fish_describe_command.fish,__fish_complete_man.fish,__fish_complete_convert_options.fish} \ + $out/share/fish/completions/{cwebp,adb,ezjail-admin,grunt,helm,heroku,lsusb,make,p4,psql,rmmod,vim-addons}.fish + + '' + optionalString usePython '' + cat > $out/share/fish/functions/__fish_anypython.fish <<EOF + function __fish_anypython + echo ${python3.interpreter} + return 0 + end + EOF + + '' + optionalString stdenv.isLinux '' + for cur in $out/share/fish/functions/*.fish; do + sed -e "s|/usr/bin/getent|${getent}/bin/getent|" \ + -i "$cur" + done + + '' + optionalString (!stdenv.isDarwin) '' + sed -i "s|Popen(\['manpath'|Popen(\['${man-db}/bin/manpath'|" \ + "$out/share/fish/tools/create_manpage_completions.py" + sed -i "s|command manpath|command ${man-db}/bin/manpath|" \ + "$out/share/fish/functions/man.fish" + '' + optionalString useOperatingSystemEtc '' + tee -a $out/etc/fish/config.fish < ${etcConfigAppendix} + '' + '' + tee -a $out/share/fish/__fish_build_paths.fish < ${fishPreInitHooks} + ''; + + meta = with lib; { + description = "Smart and user-friendly command line shell"; + homepage = "https://fishshell.com/"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ cole-h winter ]; + mainProgram = "fish"; + }; + + passthru = { + shellPath = "/bin/fish"; + tests = { + nixos = nixosTests.fish; + + # Test the fish_config tool by checking the generated splash page. + # Since the webserver requires a port to run, it is not started. + fishConfig = + let fishScript = writeText "test.fish" '' + set -x __fish_bin_dir ${fish}/bin + echo $__fish_bin_dir + cp -r ${fish}/share/fish/tools/web_config/* . + chmod -R +w * + + # if we don't set `delete=False`, the file will get cleaned up + # automatically (leading the test to fail because there's no + # tempfile to check) + sed -e 's@, mode="w"@, mode="w", delete=False@' -i webconfig.py + + # we delete everything after the fileurl is assigned + sed -e '/fileurl =/q' -i webconfig.py + echo "print(fileurl)" >> webconfig.py + + # and check whether the message appears on the page + cat (${python3}/bin/python ./webconfig.py \ + | tail -n1 | sed -ne 's|.*\(/build/.*\)|\1|p' \ + ) | grep 'a href="http://localhost.*Start the Fish Web config' + + # cannot test the http server because it needs a localhost port + ''; + in + runCommand "test-web-config" { } '' + HOME=$(mktemp -d) + ${fish}/bin/fish ${fishScript} && touch $out + ''; + }; + updateScript = nix-update-script { }; + }; + }; +in +fish diff --git a/nixpkgs/pkgs/shells/fish/oh-my-fish/default.nix b/nixpkgs/pkgs/shells/fish/oh-my-fish/default.nix new file mode 100644 index 000000000000..6c09599972d1 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/oh-my-fish/default.nix @@ -0,0 +1,62 @@ +{ lib +, stdenv +, fetchFromGitHub +, fish +, runtimeShell +, writeShellScript +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "oh-my-fish"; + version = "unstable-2022-03-27"; + + src = fetchFromGitHub { + owner = finalAttrs.pname; + repo = finalAttrs.pname; + rev = "d428b723c8c18fef3b2a00b8b8b731177f483ad8"; + hash = "sha256-msItKEPe7uSUpDAfCfdYZjt5NyfM3KtOrLUTO9NGqlg="; + }; + + strictDeps = true; + buildInputs = [ + fish + ]; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -pv $out/bin $out/share/${finalAttrs.pname} + cp -vr * $out/share/${finalAttrs.pname} + + cat << EOF > $out/bin/omf-install + #!${runtimeShell} + + ${fish}/bin/fish \\ + $out/share/${finalAttrs.pname}/bin/install \\ + --noninteractive \\ + --offline=$out/share/${finalAttrs.pname} + + EOF + chmod +x $out/bin/omf-install + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/oh-my-fish/oh-my-fish"; + description = "The Fish Shell Framework"; + longDescription = '' + Oh My Fish provides core infrastructure to allow you to install packages + which extend or modify the look of your shell. It's fast, extensible and + easy to use. + ''; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + mainProgram = "omf-install"; + platforms = fish.meta.platforms; + }; +}) +# TODO: customize the omf-install script diff --git a/nixpkgs/pkgs/shells/fish/plugins/async-prompt.nix b/nixpkgs/pkgs/shells/fish/plugins/async-prompt.nix new file mode 100644 index 000000000000..ff3a1e6d9891 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/async-prompt.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "async-prompt"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "acomagu"; + repo = "fish-async-prompt"; + rev = "v${version}"; + hash = "sha256-B7Ze0a5Zp+5JVsQUOv97mKHh5wiv3ejsDhJMrK7YOx4="; + }; + + meta = with lib; { + description = "Make your prompt asynchronous to improve the reactivity"; + homepage = "https://github.com/acomagu/fish-async-prompt"; + license = licenses.mit; + maintainers = with maintainers; [ figsoda ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/autopair.nix b/nixpkgs/pkgs/shells/fish/plugins/autopair.nix new file mode 100644 index 000000000000..50b5a30b1d93 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/autopair.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "autopair"; + version = "1.0.4"; + + src = fetchFromGitHub { + owner = "jorgebucaran"; + repo = "autopair.fish"; + rev = version; + sha256 = "sha256-s1o188TlwpUQEN3X5MxUlD/2CFCpEkWu83U9O+wg3VU="; + }; + + meta = with lib; { + description = "Auto-complete matching pairs in the Fish command line"; + homepage = "https://github.com/jorgebucaran/autopair.fish"; + license = licenses.mit; + maintainers = with maintainers; [ figsoda kidonng thehedgeh0g ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/bass.nix b/nixpkgs/pkgs/shells/fish/plugins/bass.nix new file mode 100644 index 000000000000..35b36e29d544 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/bass.nix @@ -0,0 +1,30 @@ +{ lib, buildFishPlugin, fetchFromGitHub, python3 }: + +buildFishPlugin rec { + pname = "bass"; + version = "unstable-2021-02-18"; + + src = fetchFromGitHub { + owner = "edc"; + repo = pname; + rev = "2fd3d2157d5271ca3575b13daec975ca4c10577a"; + sha256 = "0mb01y1d0g8ilsr5m8a71j6xmqlyhf8w4xjf00wkk8k41cz3ypky"; + }; + + #buildFishplugin will only move the .fish files, but bass also relies on python + postInstall = '' + cp functions/__bass.py $out/share/fish/vendor_functions.d/ + ''; + + nativeCheckInputs = [ python3 ]; + checkPhase = '' + make test + ''; + + meta = with lib; { + description = "Fish function making it easy to use utilities written for Bash in Fish shell"; + homepage = "https://github.com/edc/bass"; + license = licenses.mit; + maintainers = with maintainers; [ beezow ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/bobthefish.nix b/nixpkgs/pkgs/shells/fish/plugins/bobthefish.nix new file mode 100644 index 000000000000..417ac87257a7 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/bobthefish.nix @@ -0,0 +1,23 @@ +{ lib +, buildFishPlugin +, fetchFromGitHub +, +}: +buildFishPlugin { + pname = "bobthefish"; + version = "unstable-2023-06-16"; + + src = fetchFromGitHub { + owner = "oh-my-fish"; + repo = "theme-bobthefish"; + rev = "c2c47dc964a257131b3df2a127c2631b4760f3ec"; + sha256 = "sha256-LB4g+EA3C7OxTuHfcxfgl8IVBe5NufFc+5z9VcS0Bt0="; + }; + + meta = with lib; { + description = "A Powerline-style, Git-aware fish theme optimized for awesome"; + homepage = "https://github.com/oh-my-fish/theme-bobthefish"; + license = licenses.mit; + maintainers = with maintainers; [ Scrumplex ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/bobthefisher.nix b/nixpkgs/pkgs/shells/fish/plugins/bobthefisher.nix new file mode 100644 index 000000000000..56d179cd24b5 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/bobthefisher.nix @@ -0,0 +1,23 @@ +{ lib +, buildFishPlugin +, fetchFromGitHub +, +}: +buildFishPlugin { + pname = "bobthefisher"; + version = "unstable-2023-10-25"; + + src = fetchFromGitHub { + owner = "Scrumplex"; + repo = "bobthefisher"; + rev = "f4179a14b087c7fbfc2e892da429adad40a39e44"; + sha256 = "sha256-l1DHSZa40BX2/4GCjm5E53UOeFEnMioWbZtCW14WX6k="; + }; + + meta = with lib; { + description = "A Powerline-style, Git-aware fish theme optimized for awesome (fork of bobthefish)"; + homepage = "https://github.com/Scrumplex/bobthefisher"; + license = licenses.mit; + maintainers = with maintainers; [ Scrumplex ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/build-fish-plugin.nix b/nixpkgs/pkgs/shells/fish/plugins/build-fish-plugin.nix new file mode 100644 index 000000000000..807d5835f1ee --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/build-fish-plugin.nix @@ -0,0 +1,75 @@ +{ stdenv, lib, writeScript, wrapFish }: + +attrs@{ + pname, + version, + src, + + name ? "fishplugin-${pname}-${version}", + unpackPhase ? "", + configurePhase ? ":", + buildPhase ? ":", + preInstall ? "", + postInstall ? "", + + nativeCheckInputs ? [], + # plugin packages to add to the vendor paths of the test fish shell + checkPlugins ? [], + # vendor directories to add to the function path of the test fish shell + checkFunctionDirs ? [], + # test script to be executed in a fish shell + checkPhase ? "", + doCheck ? checkPhase != "", + + ... +}: + +let + # Do not pass attributes that are only relevant to buildFishPlugin to mkDerivation. + drvAttrs = builtins.removeAttrs attrs [ + "checkPlugins" + "checkFunctionDirs" + ]; +in + +stdenv.mkDerivation (drvAttrs // { + inherit name; + inherit unpackPhase configurePhase buildPhase; + + inherit preInstall postInstall; + installPhase = '' + runHook preInstall + + ( + install_vendor_files() { + source="$1" + target="$out/share/fish/vendor_$2.d" + + # Check if any .fish file exists in $source + [ -n "$(shopt -s nullglob; echo $source/*.fish)" ] || return 0 + + mkdir -p $target + cp $source/*.fish "$target/" + } + + install_vendor_files completions completions + install_vendor_files functions functions + install_vendor_files conf conf + install_vendor_files conf.d conf + ) + + runHook postInstall + ''; + + inherit doCheck; + + nativeCheckInputs = [ (wrapFish { + pluginPkgs = checkPlugins; + functionDirs = checkFunctionDirs; + }) ] ++ nativeCheckInputs; + + checkPhase = '' + export HOME=$(mktemp -d) # fish wants a writable home + fish "${writeScript "${name}-test" checkPhase}" + ''; +}) diff --git a/nixpkgs/pkgs/shells/fish/plugins/clownfish.nix b/nixpkgs/pkgs/shells/fish/plugins/clownfish.nix new file mode 100644 index 000000000000..cd5c997d3114 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/clownfish.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin { + pname = "clownfish"; + version = "unstable-2021-01-17"; + + src = fetchFromGitHub { + owner = "IlanCosman"; + repo = "clownfish"; + rev = "a0db28d8280d05561b8f48c0465480725feeca4c"; + sha256 = "04xvikyrdm6yxh588vbpwvm04fas76pa7sigsaqrip7yh021xxab"; + }; + + meta = with lib; { + description = "Fish function to mock the behaviour of commands"; + homepage = "https://github.com/IlanCosman/clownfish"; + license = licenses.mit; + maintainers = with maintainers; [ pacien ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/colored-man-pages.nix b/nixpkgs/pkgs/shells/fish/plugins/colored-man-pages.nix new file mode 100644 index 000000000000..435ce6e5c410 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/colored-man-pages.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "colored-man-pages"; + version = "unstable-2022-04-30"; + + src = fetchFromGitHub { + owner = "patrickf1"; + repo = "colored_man_pages.fish"; + rev = "f885c2507128b70d6c41b043070a8f399988bc7a"; + sha256 = "0ifqdbaw09hd1ai0ykhxl8735fcsm0x2fwfzsk7my2z52ds60bwa"; + }; + + meta = with lib; { + description = "Fish shell plugin to colorize man pages"; + homepage = "https://github.com/PatrickF1/colored_man_pages.fish"; + license = licenses.mit; + maintainers = [ maintainers.jocelynthode ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/default.nix b/nixpkgs/pkgs/shells/fish/plugins/default.nix new file mode 100644 index 000000000000..739e81995233 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/default.nix @@ -0,0 +1,62 @@ +{ lib, newScope, config }: + +lib.makeScope newScope (self: with self; { + async-prompt = callPackage ./async-prompt.nix { }; + + autopair = callPackage ./autopair.nix { }; + + bobthefish = callPackage ./bobthefish.nix { }; + + bobthefisher = callPackage ./bobthefisher.nix { }; + + buildFishPlugin = callPackage ./build-fish-plugin.nix { }; + + colored-man-pages = callPackage ./colored-man-pages.nix { }; + + clownfish = callPackage ./clownfish.nix { }; + + bass = callPackage ./bass.nix { }; + + done = callPackage ./done.nix { }; + + # Fishtape 2.x and 3.x aren't compatible, + # but both versions are used in the tests of different other plugins. + fishtape = callPackage ./fishtape.nix { }; + fishtape_3 = callPackage ./fishtape_3.nix { }; + + foreign-env = callPackage ./foreign-env { }; + + forgit = callPackage ./forgit.nix { }; + + fzf = callPackage ./fzf.nix { }; + + fzf-fish = callPackage ./fzf-fish.nix { }; + + github-copilot-cli-fish = callPackage ./github-copilot-cli-fish.nix { }; + + grc = callPackage ./grc.nix { }; + + humantime-fish = callPackage ./humantime-fish.nix { }; + + hydro = callPackage ./hydro.nix { }; + + pisces = callPackage ./pisces.nix { }; + + plugin-git = callPackage ./plugin-git.nix { }; + + puffer = callPackage ./puffer.nix { }; + + pure = callPackage ./pure.nix { }; + + sdkman-for-fish = callPackage ./sdkman-for-fish.nix { }; + + sponge = callPackage ./sponge.nix { }; + + tide = callPackage ./tide.nix { }; + + wakatime-fish = callPackage ./wakatime-fish.nix { }; + + z = callPackage ./z.nix { }; +} // lib.optionalAttrs config.allowAliases { + autopair-fish = self.autopair; # Added 2023-03-10 +}) diff --git a/nixpkgs/pkgs/shells/fish/plugins/done.nix b/nixpkgs/pkgs/shells/fish/plugins/done.nix new file mode 100644 index 000000000000..ad16e257bf62 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/done.nix @@ -0,0 +1,25 @@ +{ lib, buildFishPlugin, fetchFromGitHub, fishtape }: + +buildFishPlugin rec { + pname = "done"; + version = "1.17.1"; + + src = fetchFromGitHub { + owner = "franciscolourenco"; + repo = "done"; + rev = version; + hash = "sha256-aYKTkx5v7tB6k/UBcS0NOgA6SiRrjzn1lUTH/Xp5DFM="; + }; + + checkPlugins = [ fishtape ]; + checkPhase = '' + fishtape test/done.fish + ''; + + meta = { + description = "Automatically receive notifications when long processes finish"; + homepage = "https://github.com/franciscolourenco/done"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ malo ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/fishtape.nix b/nixpkgs/pkgs/shells/fish/plugins/fishtape.nix new file mode 100644 index 000000000000..82f2375d5e3f --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/fishtape.nix @@ -0,0 +1,32 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "fishtape"; + version = "2.1.3"; + + src = fetchFromGitHub { + owner = "jorgebucaran"; + repo = "fishtape"; + rev = version; + sha256 = "0dxcyhs2shhgy5xnwcimqja8vqsyk841x486lgq13i3y1h0kp2kd"; + }; + + checkFunctionDirs = [ "./" ]; # fishtape is introspective + checkPhase = '' + rm test/tty.fish # test expects a tty + fishtape test/*.fish + ''; + + preInstall = '' + # move the function script in the proper sub-directory + mkdir functions + mv fishtape.fish functions/ + ''; + + meta = { + description = "TAP-based test runner for Fish"; + homepage = "https://github.com/jorgebucaran/fishtape"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ pacien ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/fishtape_3.nix b/nixpkgs/pkgs/shells/fish/plugins/fishtape_3.nix new file mode 100644 index 000000000000..893e6d65ffb3 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/fishtape_3.nix @@ -0,0 +1,25 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "fishtape"; + version = "3.0.1"; + + src = fetchFromGitHub { + owner = "jorgebucaran"; + repo = "fishtape"; + rev = version; + sha256 = "072a3qbk1lpxw53bxp91drsffylx8fbywhss3x0jbnayn9m8i7aa"; + }; + + checkFunctionDirs = [ "./functions" ]; # fishtape is introspective + checkPhase = '' + fishtape tests/*.fish + ''; + + meta = with lib; { + description = "100% pure-Fish test runner"; + homepage = "https://github.com/jorgebucaran/fishtape"; + license = licenses.mit; + maintainers = with maintainers; [ pacien ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/foreign-env/default.nix b/nixpkgs/pkgs/shells/fish/plugins/foreign-env/default.nix new file mode 100644 index 000000000000..d0b5b77a03b1 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/foreign-env/default.nix @@ -0,0 +1,29 @@ +{ lib, buildFishPlugin, fetchFromGitHub, gnused, bash, coreutils }: + +buildFishPlugin { + pname = "foreign-env"; + version = "unstable-2020-02-09"; + + src = fetchFromGitHub { + owner = "oh-my-fish"; + repo = "plugin-foreign-env"; + rev = "dddd9213272a0ab848d474d0cbde12ad034e65bc"; + sha256 = "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs"; + }; + + patches = [ ./suppress-harmless-warnings.patch ]; + + preInstall = '' + sed -e "s|sed|${gnused}/bin/sed|" \ + -e "s|bash|${bash}/bin/bash|" \ + -e "s|\| tr|\| ${coreutils}/bin/tr|" \ + -i functions/* + ''; + + meta = with lib; { + description = "A foreign environment interface for Fish shell"; + license = licenses.mit; + maintainers = with maintainers; [ jgillich ]; + platforms = with platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/foreign-env/suppress-harmless-warnings.patch b/nixpkgs/pkgs/shells/fish/plugins/foreign-env/suppress-harmless-warnings.patch new file mode 100644 index 000000000000..6eed35152120 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/foreign-env/suppress-harmless-warnings.patch @@ -0,0 +1,23 @@ +diff --git a/functions/fenv.apply.fish b/functions/fenv.apply.fish +index 34a25e3..3d94135 100644 +--- a/functions/fenv.apply.fish ++++ b/functions/fenv.apply.fish +@@ -27,11 +27,17 @@ function fenv.apply + for variable in $variables + set key (echo $variable | sed 's/=.*//') + set value (echo $variable | sed 's/[^=]*=//') ++ set ignore PATH _ + + if test "$key" = 'PATH' + set value (echo $value | tr ':' '\n') + end + +- set -g -x $key $value ++ if contains $key $ignore ++ set -g -x $key $value 2>/dev/null ++ else ++ set -g -x $key $value ++ end ++ + end + end diff --git a/nixpkgs/pkgs/shells/fish/plugins/forgit.nix b/nixpkgs/pkgs/shells/fish/plugins/forgit.nix new file mode 100644 index 000000000000..80a40aff0e99 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/forgit.nix @@ -0,0 +1,24 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "forgit"; + version = "23.04.0"; + + src = fetchFromGitHub { + owner = "wfxr"; + repo = "forgit"; + rev = version; + sha256 = "sha256-3lvYIuzuJw0CQlaAQG6hAyfUgSXM+3BOmKRVDNFUN/U="; + }; + + postInstall = '' + cp -r bin $out/share/fish/vendor_conf.d/ + ''; + + meta = with lib; { + description = "A utility tool powered by fzf for using git interactively."; + homepage = "https://github.com/wfxr/forgit"; + license = licenses.mit; + maintainers = with maintainers; [ happysalada ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix b/nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix new file mode 100644 index 000000000000..073ae04952ec --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/fzf-fish.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, pkgs, buildFishPlugin, fetchFromGitHub, fd, unixtools, procps, clownfish, fishtape_3, }: +let + # we want `pkgs.fzf`, not `fishPlugins.fzf` + inherit (pkgs) fzf; +in +buildFishPlugin rec { + pname = "fzf.fish"; + version = "10.0"; + + src = fetchFromGitHub { + owner = "PatrickF1"; + repo = "fzf.fish"; + rev = "v${version}"; + hash = "sha256-CqRSkwNqI/vdxPKrShBykh+eHQq9QIiItD6jWdZ/DSM="; + }; + + nativeCheckInputs = [ fzf fd unixtools.script procps ]; + checkPlugins = [ clownfish fishtape_3 ]; + checkFunctionDirs = [ "./functions" ]; + checkPhase = '' + # Disable git tests which inspect the project's git repo, which isn't + # possible since we strip the impure .git from our build input + rm -r tests/*git* + rm -r tests/preview_changed_file/modified_path_with_spaces.fish + rm -r tests/preview_changed_file/renamed_path_modifications.fish + + # Disable tests that are failing, probably because of our wrappers + rm -r tests/configure_bindings + rm -r tests/search_variables + + # Disable tests that are failing, because there is not 'rev' command + rm tests/preview_file/custom_file_preview.fish + '' + ( + if stdenv.isDarwin then ''script /dev/null fish -c "fishtape tests/*/*.fish"'' + else ''script -c 'fish -c "fishtape tests/*/*.fish"' '' + ); + + meta = with lib; { + description = "Augment your fish command line with fzf key bindings"; + homepage = "https://github.com/PatrickF1/fzf.fish"; + changelog = "https://github.com/PatrickF1/fzf.fish/releases/tag/${src.rev}"; + license = licenses.mit; + maintainers = with maintainers; [ pacien natsukium ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/fzf.nix b/nixpkgs/pkgs/shells/fish/plugins/fzf.nix new file mode 100644 index 000000000000..fa7e33da6a74 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/fzf.nix @@ -0,0 +1,23 @@ +{ lib +, buildFishPlugin +, fetchFromGitHub +, +}: +buildFishPlugin rec { + pname = "fzf"; + version = "unstable-2021-05-12"; + + src = fetchFromGitHub { + owner = "jethrokuan"; + repo = pname; + rev = "479fa67d7439b23095e01b64987ae79a91a4e283"; + sha256 = "sha256-28QW/WTLckR4lEfHv6dSotwkAKpNJFCShxmKFGQQ1Ew="; + }; + + meta = with lib; { + description = "Ef-fish-ient fish keybindings for fzf"; + homepage = "https://github.com/jethrokuan/fzf"; + license = licenses.mit; + maintainers = with maintainers; [ Scrumplex ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/github-copilot-cli-fish.nix b/nixpkgs/pkgs/shells/fish/plugins/github-copilot-cli-fish.nix new file mode 100644 index 000000000000..83192ad092f5 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/github-copilot-cli-fish.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "github-copilot-cli.fish"; + version = "0.1.33"; + + src = fetchFromGitHub { + owner = "z11i"; + repo = pname; + rev = version; + hash = "sha256-dhACPlFrw1Z0dW0eA0IMnOelYJc7Fyz2D9u+rL1pyiM="; + }; + + meta = with lib; { + description = "GitHub Copilot CLI aliases for Fish Shell"; + homepage = "https://github.com/z11i/github-copilot-cli.fish"; + license = licenses.asl20; + maintainers = [ maintainers.malo ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/grc.nix b/nixpkgs/pkgs/shells/fish/plugins/grc.nix new file mode 100644 index 000000000000..1149c082cac0 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/grc.nix @@ -0,0 +1,24 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin { + pname = "grc"; + version = "unstable-2022-05-24"; + + src = fetchFromGitHub { + owner = "oh-my-fish"; + repo = "plugin-grc"; + rev = "61de7a8a0d7bda3234f8703d6e07c671992eb079"; + sha256 = "sha256-NQa12L0zlEz2EJjMDhWUhw5cz/zcFokjuCK5ZofTn+Q="; + }; + + postInstall = '' + cp conf.d/executables $out/share/fish/vendor_conf.d/ + ''; + + meta = with lib; { + description = "grc Colourizer for some commands on Fish shell"; + license = licenses.mit; + maintainers = with maintainers; [ onny ]; + platforms = with platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/humantime-fish.nix b/nixpkgs/pkgs/shells/fish/plugins/humantime-fish.nix new file mode 100644 index 000000000000..8e1c960e59e5 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/humantime-fish.nix @@ -0,0 +1,29 @@ +{ lib +, buildFishPlugin +, fetchFromGitHub +, fishtape +, +}: +buildFishPlugin rec { + pname = "humantime-fish"; + version = "unstable-2022-04-08"; + + src = fetchFromGitHub { + owner = "jorgebucaran"; + repo = "humantime.fish"; + rev = "53b2adb4c6aff0da569c931a3cc006efcd0e7219"; + sha256 = "sha256-792rPsf2WDIYcP8gn6TbHh9RZvskfOAL/oKfpilaLh0="; + }; + + checkPlugins = [ fishtape ]; + checkPhase = '' + fishtape tests/humantime.fish + ''; + + meta = with lib; { + description = "Turn milliseconds into a human-readable string in Fish"; + homepage = "https://github.com/jorgebucaran/humantime.fish"; + license = licenses.mit; + maintainers = with maintainers; [ Scrumplex ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/hydro.nix b/nixpkgs/pkgs/shells/fish/plugins/hydro.nix new file mode 100644 index 000000000000..cd8705d54716 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/hydro.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "hydro"; + version = "unstable-2022-02-21"; + + src = fetchFromGitHub { + owner = "jorgebucaran"; + repo = "hydro"; + rev = "d4875065ceea226f58ead97dd9b2417937344d6e"; + sha256 = "sha256-nXeDnqqOuZyrqGTPEQtYlFvrFvy1bZVMF4CA37b0lsE="; + }; + + meta = with lib; { + description = "Ultra-pure, lag-free prompt with async Git status"; + homepage = "https://github.com/jorgebucaran/hydro"; + license = licenses.mit; + maintainers = with maintainers; [ thehedgeh0g ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/pisces.nix b/nixpkgs/pkgs/shells/fish/plugins/pisces.nix new file mode 100644 index 000000000000..c1ed37f41227 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/pisces.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "pisces"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "laughedelic"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-Oou2IeNNAqR00ZT3bss/DbhrJjGeMsn9dBBYhgdafBw="; + }; + + meta = with lib; { + description = "Paired symbols in the command line"; + homepage = "https://github.com/laughedelic/pisces"; + license = licenses.lgpl3; + maintainers = with maintainers; [ vanilla ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/plugin-git.nix b/nixpkgs/pkgs/shells/fish/plugins/plugin-git.nix new file mode 100644 index 000000000000..7d1774b642df --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/plugin-git.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "plugin-git"; + version = "0.1"; + + src = fetchFromGitHub { + owner = "jhillyerd"; + repo = "plugin-git"; + rev = "v0.1"; + sha256 = "sha256-MfrRQdcj7UtIUgtqKjt4lqFLpA6YZgKjE03VaaypNzE"; + }; + + meta = with lib; { + description = "Git plugin for fish (similar to oh-my-zsh git)"; + homepage = "https://github.com/jhillyerd/plugin-git"; + license = licenses.mit; + maintainers = with maintainers; [ unsolvedcypher ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/puffer.nix b/nixpkgs/pkgs/shells/fish/plugins/puffer.nix new file mode 100644 index 000000000000..0365c55e5351 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/puffer.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "puffer"; + version = "unstable-2022-10-07"; + + src = fetchFromGitHub { + owner = "nickeb96"; + repo = "puffer-fish"; + rev = "fd0a9c95da59512beffddb3df95e64221f894631"; + hash = "sha256-aij48yQHeAKCoAD43rGhqW8X/qmEGGkg8B4jSeqjVU0="; + }; + + meta = with lib; { + description = "Text Expansions for Fish"; + homepage = "https://github.com/nickeb96/puffer-fish"; + license = licenses.mit; + maintainers = with maintainers; [ quantenzitrone ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/pure.nix b/nixpkgs/pkgs/shells/fish/plugins/pure.nix new file mode 100644 index 000000000000..04334f14fa99 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/pure.nix @@ -0,0 +1,29 @@ +{ lib, buildFishPlugin, fetchFromGitHub, git, fishtape_3 }: + +buildFishPlugin rec { + pname = "pure"; + version = "4.8.0"; + + src = fetchFromGitHub { + owner = "pure-fish"; + repo = "pure"; + rev = "v${version}"; + hash = "sha256-O8rC2uCuM3xUQPRap7XqyyAvO77hP+sqNM4mEQ7pZkw="; + }; + + nativeCheckInputs = [ git ]; + checkPlugins = [ fishtape_3 ]; + checkPhase = '' + rm tests/pure_tools_installer.test.fish + rm tests/_pure_uninstall.test.fish + + fishtape tests/*.test.fish + ''; + + meta = { + description = "Pretty, minimal and fast Fish prompt, ported from zsh"; + homepage = "https://github.com/rafaelrinaldi/pure"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ pacien ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/sdkman-for-fish.nix b/nixpkgs/pkgs/shells/fish/plugins/sdkman-for-fish.nix new file mode 100644 index 000000000000..ee8b4757fc61 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/sdkman-for-fish.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "sdkman-for-fish"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "reitzig"; + repo = "sdkman-for-fish"; + rev = "v${version}"; + hash = "sha256-cgDTunWFxFm48GmNv21o47xrXyo+sS6a3CzwHlv0Ezo="; + }; + + meta = with lib; { + description = "Adds support for SDKMAN! to fish"; + homepage = "https://github.com/reitzig/sdkman-for-fish"; + license = licenses.mit; + maintainers = with maintainers; [ giorgiga ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/sponge.nix b/nixpkgs/pkgs/shells/fish/plugins/sponge.nix new file mode 100644 index 000000000000..8528452e783b --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/sponge.nix @@ -0,0 +1,20 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +buildFishPlugin rec { + pname = "sponge"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "meaningful-ooo"; + repo = pname; + rev = version; + sha256 = "sha256-MdcZUDRtNJdiyo2l9o5ma7nAX84xEJbGFhAVhK+Zm1w="; + }; + + meta = with lib; { + description = "keeps your fish shell history clean from typos, incorrectly used commands and everything you don't want to store due to privacy reasons"; + homepage = "https://github.com/meaningful-ooo/sponge"; + license = licenses.mit; + maintainers = with maintainers; [ quantenzitrone ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/tide.nix b/nixpkgs/pkgs/shells/fish/plugins/tide.nix new file mode 100644 index 000000000000..39afd487afdb --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/tide.nix @@ -0,0 +1,28 @@ +{ lib, buildFishPlugin, fetchFromGitHub }: + +# Due to a quirk in tide breaking wrapFish, we need to add additional commands in the config.fish +# Refer to the following comment to get you setup: https://github.com/NixOS/nixpkgs/pull/201646#issuecomment-1320893716 +buildFishPlugin rec { + pname = "tide"; + version = "6.0.1"; + + src = fetchFromGitHub { + owner = "IlanCosman"; + repo = "tide"; + rev = "v${version}"; + hash = "sha256-oLD7gYFCIeIzBeAW1j62z5FnzWAp3xSfxxe7kBtTLgA="; + }; + + #buildFishplugin will only move the .fish files, but tide has a tide configure function + postInstall = '' + cp -R functions/tide $out/share/fish/vendor_functions.d/ + ''; + + meta = with lib; { + description = "The ultimate Fish prompt"; + homepage = "https://github.com/IlanCosman/tide"; + license = licenses.mit; + maintainers = [ maintainers.jocelynthode ]; + }; +} + diff --git a/nixpkgs/pkgs/shells/fish/plugins/wakatime-fish.nix b/nixpkgs/pkgs/shells/fish/plugins/wakatime-fish.nix new file mode 100644 index 000000000000..3bd6585d19ca --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/wakatime-fish.nix @@ -0,0 +1,30 @@ +{ lib +, wakatime +, buildFishPlugin +, fetchFromGitHub +}: + +buildFishPlugin rec { + pname = "wakatime-fish"; + version = "0.0.3"; + + src = fetchFromGitHub { + owner = "ik11235"; + repo = "wakatime.fish"; + rev = "v${version}"; + hash = "sha256-t0b8jvkNU7agF0A8YkwQ57qGGqcYJF7l9eNr12j2ZQ0="; + }; + + preFixup = '' + substituteInPlace $out/share/fish/vendor_conf.d/wakatime.fish \ + --replace "if type -p wakatime" "if type -p ${lib.getExe wakatime}" \ + --replace "(type -p wakatime)" "${lib.getExe wakatime}" + ''; + + meta = with lib; { + description = "A fish plugin for wakatime"; + homepage = "https://github.com/ik11235/wakatime.fish"; + license = licenses.mit; + maintainers = with maintainers; [ ocfox ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/plugins/z.nix b/nixpkgs/pkgs/shells/fish/plugins/z.nix new file mode 100644 index 000000000000..207c68a43d76 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/plugins/z.nix @@ -0,0 +1,23 @@ +{ lib +, buildFishPlugin +, fetchFromGitHub +, +}: +buildFishPlugin rec { + pname = "z"; + version = "unstable-2022-04-08"; + + src = fetchFromGitHub { + owner = "jethrokuan"; + repo = pname; + rev = "85f863f20f24faf675827fb00f3a4e15c7838d76"; + sha256 = "sha256-+FUBM7CodtZrYKqU542fQD+ZDGrd2438trKM0tIESs0="; + }; + + meta = with lib; { + description = "Pure-fish z directory jumping"; + homepage = "https://github.com/jethrokuan/z"; + license = licenses.mit; + maintainers = with maintainers; [ Scrumplex ]; + }; +} diff --git a/nixpkgs/pkgs/shells/fish/wrapper.nix b/nixpkgs/pkgs/shells/fish/wrapper.nix new file mode 100644 index 000000000000..62ae03ec9ef9 --- /dev/null +++ b/nixpkgs/pkgs/shells/fish/wrapper.nix @@ -0,0 +1,52 @@ +{ lib, writeShellApplication, fish, writeTextFile }: + +lib.makeOverridable ({ + completionDirs ? [], + functionDirs ? [], + confDirs ? [], + pluginPkgs ? [], + localConfig ? "", + shellAliases ? {}, + runtimeInputs ? [] +}: + +let + aliasesStr = builtins.concatStringsSep "\n" + (lib.mapAttrsToList (k: v: "alias ${k} ${lib.escapeShellArg v}") shellAliases); + + shellAliasesFishConfig = writeTextFile { + name = "wrapfish.aliases.fish"; + destination = "/share/fish/vendor_conf.d/aliases.fish"; + text = '' + status is-interactive; and begin + # Aliases + ${aliasesStr} + end + ''; + }; + + localFishConfig = writeTextFile { + name = "wrapfish.local.fish"; + destination = "/share/fish/vendor_conf.d/config.local.fish"; + text = localConfig; + }; + + vendorDir = kind: plugin: "${plugin}/share/fish/vendor_${kind}.d"; + complPath = completionDirs ++ map (vendorDir "completions") pluginPkgs; + funcPath = functionDirs ++ map (vendorDir "functions") pluginPkgs; + confPath = confDirs + ++ (map (vendorDir "conf") pluginPkgs) + ++ (map (vendorDir "conf") [ localFishConfig shellAliasesFishConfig ]); + +in writeShellApplication { + inherit runtimeInputs; + name = "fish"; + text = '' + ${fish}/bin/fish --init-command " + set --prepend fish_complete_path ${lib.escapeShellArgs complPath} + set --prepend fish_function_path ${lib.escapeShellArgs funcPath} + set --local fish_conf_source_path ${lib.escapeShellArgs confPath} + for c in \$fish_conf_source_path/*; source \$c; end + " "$@" + ''; +}) diff --git a/nixpkgs/pkgs/shells/fzf-git-sh/default.nix b/nixpkgs/pkgs/shells/fzf-git-sh/default.nix new file mode 100644 index 000000000000..598c2d0eb0b2 --- /dev/null +++ b/nixpkgs/pkgs/shells/fzf-git-sh/default.nix @@ -0,0 +1,64 @@ +{ stdenv +, lib +, bash +, bat +, coreutils +, fetchFromGitHub +, findutils +, fzf +, gawk +, git +, gnugrep +, gnused +, tmux +, util-linux +, xdg-utils +}: + +stdenv.mkDerivation rec { + pname = "fzf-git-sh"; + version = "unstable-2022-09-30"; + + src = fetchFromGitHub { + owner = "junegunn"; + repo = "fzf-git.sh"; + rev = "9190e1bf7273d85f435fa759a5c3b20e588e9f7e"; + sha256 = "sha256-2CGjk1oTXip+eAJMuOk/X3e2KTwfwzcKTcGToA2xPd4="; + }; + + dontBuild = true; + + postPatch = '' + sed -i \ + -e "s,\bawk\b,${gawk}/bin/awk," \ + -e "s,\bbash\b,${bash}/bin/bash," \ + -e "s,\bbat\b,${bat}/bin/bat," \ + -e "s,\bcat\b,${coreutils}/bin/cat," \ + -e "s,\bcut\b,${coreutils}/bin/cut," \ + -e "s,\bhead\b,${coreutils}/bin/head," \ + -e "s,\buniq\b,${coreutils}/bin/uniq," \ + -e "s,\bcolumn\b,${util-linux}/bin/column," \ + -e "s,\bfzf-tmux\b,${fzf}/bin/fzf-tmux," \ + -e "/display-message/!s,\bgit\b,${git}/bin/git,g" \ + -e "s,\bgrep\b,${gnugrep}/bin/grep," \ + -e "s,\bsed\b,${gnused}/bin/sed," \ + -e "/fzf-tmux/!s,\btmux\b,${tmux}/bin/tmux," \ + -e "s,\bxargs\b,${findutils}/bin/xargs," \ + -e "s,\bxdg-open\b,${xdg-utils}/bin/xdg-open," \ + -e "s,__fzf_git=.*BASH_SOURCE.*,__fzf_git=$out/share/${pname}/fzf-git.sh," \ + -e "/__fzf_git=.*readlink.*/d" \ + fzf-git.sh + ''; + + installPhase = '' + install -D fzf-git.sh $out/share/${pname}/fzf-git.sh + ''; + + meta = with lib; { + homepage = "https://github.com/junegunn/fzf-git.sh"; + description = "Bash and zsh key bindings for Git objects, powered by fzf"; + license = licenses.mit; + maintainers = with maintainers; [ deejayem ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/shells/hilbish/default.nix b/nixpkgs/pkgs/shells/hilbish/default.nix new file mode 100644 index 000000000000..e558402543bf --- /dev/null +++ b/nixpkgs/pkgs/shells/hilbish/default.nix @@ -0,0 +1,41 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "hilbish"; + version = "2.1.2"; + + src = fetchFromGitHub { + owner = "Rosettea"; + repo = "Hilbish"; + rev = "v${version}"; + hash = "sha256-OEuriFnVDS0POXoPeUk4IcLtV3JAMLDM2apDxmjg5cQ="; + fetchSubmodules = true; + }; + + subPackages = [ "." ]; + + vendorHash = "sha256-Kiy1JR3X++naY2XNLpnGujrNQt7qlL0zxv8E96cHmHo="; + + ldflags = [ + "-s" + "-w" + "-X main.dataDir=${placeholder "out"}/share/hilbish" + ]; + + postInstall = '' + mkdir -p "$out/share/hilbish" + + cp .hilbishrc.lua $out/share/hilbish/ + cp -r docs -t $out/share/hilbish/ + cp -r libs -t $out/share/hilbish/ + cp -r nature $out/share/hilbish/ + ''; + + meta = with lib; { + description = "An interactive Unix-like shell written in Go"; + changelog = "https://github.com/Rosettea/Hilbish/releases/tag/v${version}"; + homepage = "https://github.com/Rosettea/Hilbish"; + maintainers = with maintainers; [ fortuneteller2k ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/shells/hishtory/default.nix b/nixpkgs/pkgs/shells/hishtory/default.nix new file mode 100644 index 000000000000..1d5256e401ac --- /dev/null +++ b/nixpkgs/pkgs/shells/hishtory/default.nix @@ -0,0 +1,37 @@ +{ buildGoModule +, fetchFromGitHub +, lib +}: + +buildGoModule rec { + pname = "hishtory"; + version = "0.215"; + + src = fetchFromGitHub { + owner = "ddworken"; + repo = pname; + rev = "v${version}"; + hash = "sha256-XDxAzMQjtCfufWnEO5NXP8Zv823a85qYhkZcEZKxIXs="; + }; + + vendorHash = "sha256-aXHqPk8iBMbe0NlsY3ZR7iozBGCAKlOOQ23FAD/5hL8="; + + ldflags = [ "-X github.com/ddworken/hishtory/client/lib.Version=${version}" ]; + + excludedPackages = [ "backend/server" ]; + + postInstall = '' + mkdir -p $out/share/hishtory + cp client/lib/config.* $out/share/hishtory + ''; + + doCheck = false; + + meta = with lib; { + description = "Your shell history: synced, queryable, and in context"; + homepage = "https://github.com/ddworken/hishtory"; + license = licenses.mit; + maintainers = with maintainers; [ Enzime ]; + }; +} + diff --git a/nixpkgs/pkgs/shells/ion/Cargo.lock b/nixpkgs/pkgs/shells/ion/Cargo.lock new file mode 100644 index 000000000000..e8355a3928cd --- /dev/null +++ b/nixpkgs/pkgs/shells/ion/Cargo.lock @@ -0,0 +1,2976 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13739d7177fbd22bb0ed28badfff9f372f8bef46c863db4e1c6248f6b223b6e" + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[package]] +name = "andrew" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c4afb09dd642feec8408e33f92f3ffc4052946f6b20f32fb99c1f58cd4fa7cf" +dependencies = [ + "bitflags", + "rusttype", + "walkdir", + "xdg", + "xml-rs", +] + +[[package]] +name = "android_glue" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000444226fcff248f2bc4c7625be32c63caccfecc2723a2b9f78a7487a49c407" + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "auto_enums" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe0dfe45d75158751e195799f47ea02e81f570aa24bc5ef999cdd9e888c4b5c3" +dependencies = [ + "auto_enums_core", + "auto_enums_derive", +] + +[[package]] +name = "auto_enums_core" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da47c46001293a2c4b744d731958be22cff408a2ab76e2279328f9713b1267b4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "auto_enums_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41aed1da83ecdc799503b7cb94da1b45a34d72b49caf40a61d9cf5b88ec07cfd" +dependencies = [ + "autocfg", + "derive_utils", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "lazy_static", + "memchr", + "regex-automata", + "serde", +] + +[[package]] +name = "builtins-proc" +version = "0.1.0" +dependencies = [ + "darling", + "ion-shell", + "quote", + "syn", +] + +[[package]] +name = "bumpalo" +version = "3.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" + +[[package]] +name = "bytecount" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c" + +[[package]] +name = "bytemuck" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5377c8865e74a160d21f29c2d40669f53286db6eab59b88540cbb12ffc8b835" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "calculate" +version = "0.7.0" +source = "git+https://gitlab.redox-os.org/redox-os/calc#9f975c504bf6d1a2bcf44992866233f49afaeb29" +dependencies = [ + "atty", + "clap", + "decimal", + "num", + "rand 0.7.3", + "redox_liner", +] + +[[package]] +name = "calloop" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b036167e76041694579972c28cf4877b4f92da222560ddb49008937b6a6727c" +dependencies = [ + "log", + "nix 0.18.0", +] + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cgl" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" +dependencies = [ + "libc", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim 0.8.0", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "cocoa" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c54201c07dcf3a5ca33fececb8042aed767ee4bfd5a0235a8ceabcda956044b2" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation 0.9.3", + "core-graphics 0.22.3", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation 0.9.3", + "core-graphics 0.22.3", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +dependencies = [ + "bitflags", + "block", + "core-foundation 0.9.3", + "core-graphics-types", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "core-foundation" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +dependencies = [ + "core-foundation-sys 0.7.0", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys 0.8.3", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core-graphics" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923" +dependencies = [ + "bitflags", + "core-foundation 0.7.0", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags", + "core-foundation 0.9.3", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation 0.9.3", + "foreign-types", + "libc", +] + +[[package]] +name = "core-video-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828" +dependencies = [ + "cfg-if 0.1.10", + "core-foundation-sys 0.7.0", + "core-graphics 0.19.2", + "libc", + "objc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "criterion" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b01d6de93b2b6c65e17c634a26653a29d107b3c98c607c765bf38d041531cd8f" +dependencies = [ + "atty", + "cast", + "clap", + "criterion-plot", + "csv", + "itertools 0.10.3", + "lazy_static", + "num-traits", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_cbor", + "serde_derive", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2673cc8207403546f45f5fd319a974b1e6983ad1a3ee7e6041650013be041876" +dependencies = [ + "cast", + "itertools 0.10.3", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" +dependencies = [ + "autocfg", + "cfg-if 1.0.0", + "crossbeam-utils", + "memoffset", + "once_cell", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", +] + +[[package]] +name = "csv" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" +dependencies = [ + "bstr", + "csv-core", + "itoa 0.4.8", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +dependencies = [ + "memchr", +] + +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + +[[package]] +name = "darling" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.9.3", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "decimal" +version = "2.1.0" +source = "git+https://github.com/alkis/decimal.git#83cfb19d07188106e9399b36d2496a1a07ee619f" +dependencies = [ + "bitflags", + "cc", + "libc", +] + +[[package]] +name = "deflate" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_utils" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "532b4c15dccee12c7044f1fcad956e98410860b22231e44a3b827464797ca7bf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dlib" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76" +dependencies = [ + "libloading 0.6.7", +] + +[[package]] +name = "dlib" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794" +dependencies = [ + "libloading 0.7.3", +] + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "draw_state" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33cf9537e2d06891448799b96d5a8c8083e0e90522a7fdabe6ebf4f41d79d651" +dependencies = [ + "bitflags", +] + +[[package]] +name = "either" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "futures" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" + +[[package]] +name = "futures-executor" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" + +[[package]] +name = "futures-sink" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" + +[[package]] +name = "futures-task" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" + +[[package]] +name = "futures-util" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gfx" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01de46f9508a5c259aef105f0bff760ceddca832ea9c87ce03d1923e22ee155b" +dependencies = [ + "draw_state", + "gfx_core", + "log", +] + +[[package]] +name = "gfx_core" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75fbddaef2e12b4995900539d7209d947b988a3d87ee8737484d049b526e5441" +dependencies = [ + "bitflags", + "draw_state", + "log", +] + +[[package]] +name = "gfx_device_gl" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c385fa380c18888633aa27d1e16cbae518469702a2f69dcb5f52d5378bebc" +dependencies = [ + "gfx_core", + "gfx_gl", + "log", +] + +[[package]] +name = "gfx_gl" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2d38164670920cfb7491bc0cf6f49f0554bd1c44cdbedc6c78d2bf91691ff5e" +dependencies = [ + "gl_generator 0.14.0", +] + +[[package]] +name = "gif" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gl" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b411c7e0bfc599e3606412c190e786b5bb48cf00073e1635f9bb6f88fe7d84a" +dependencies = [ + "gl_generator 0.13.1", +] + +[[package]] +name = "gl_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca98bbde17256e02d17336a6bdb5a50f7d0ccacee502e191d3e3d0ec2f96f84a" +dependencies = [ + "khronos_api", + "log", + "xml-rs", +] + +[[package]] +name = "gl_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" +dependencies = [ + "khronos_api", + "log", + "xml-rs", +] + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "glutin" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ae1cbb9176b9151c4ce03f012e3cd1c6c18c4be79edeaeb3d99f5d8085c5fa3" +dependencies = [ + "android_glue", + "cgl", + "cocoa 0.23.0", + "core-foundation 0.9.3", + "glutin_egl_sys", + "glutin_emscripten_sys", + "glutin_gles2_sys", + "glutin_glx_sys", + "glutin_wgl_sys", + "lazy_static", + "libloading 0.6.7", + "log", + "objc", + "osmesa-sys", + "parking_lot 0.11.2", + "wayland-client", + "wayland-egl", + "winapi 0.3.9", + "winit", +] + +[[package]] +name = "glutin_egl_sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2abb6aa55523480c4adc5a56bbaa249992e2dddb2fc63dc96e04a3355364c211" +dependencies = [ + "gl_generator 0.14.0", + "winapi 0.3.9", +] + +[[package]] +name = "glutin_emscripten_sys" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80de4146df76e8a6c32b03007bc764ff3249dcaeb4f675d68a06caf1bac363f1" + +[[package]] +name = "glutin_gles2_sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094e708b730a7c8a1954f4f8a31880af00eb8a1c5b5bf85d28a0a3c6d69103" +dependencies = [ + "gl_generator 0.14.0", + "objc", +] + +[[package]] +name = "glutin_glx_sys" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e393c8fc02b807459410429150e9c4faffdb312d59b8c038566173c81991351" +dependencies = [ + "gl_generator 0.14.0", + "x11-dl", +] + +[[package]] +name = "glutin_wgl_sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3da5951a1569dbab865c6f2a863efafff193a93caf05538d193e9e3816d21696" +dependencies = [ + "gl_generator 0.14.0", +] + +[[package]] +name = "half" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "image" +version = "0.23.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "gif", + "jpeg-decoder", + "num-iter", + "num-rational", + "num-traits", + "png", + "scoped_threadpool", + "tiff", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "interpolation" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b7357d2bbc5ee92f8e899ab645233e43d21407573cceb37fed8bc3dede2c02" + +[[package]] +name = "ion-ranges" +version = "0.1.0" + +[[package]] +name = "ion-shell" +version = "1.0.0-alpha" +dependencies = [ + "atty", + "auto_enums", + "builtins-proc", + "calculate", + "criterion", + "errno-dragonfly", + "glob", + "ion-ranges", + "itertools 0.9.0", + "lexical", + "mktemp", + "nix 0.23.1", + "object-pool", + "permutate", + "piston-ai_behavior", + "piston2d-sprite", + "piston_window", + "rand 0.7.3", + "redox_liner", + "redox_users", + "regex", + "scopes", + "serial_test", + "serial_test_derive", + "small", + "smallvec", + "thiserror", + "types-rs", + "unicode-segmentation", + "users", + "xdg", +] + +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jpeg-decoder" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" +dependencies = [ + "rayon", +] + +[[package]] +name = "js-sys" +version = "0.3.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "khronos_api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "lexical" +version = "5.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f404a90a744e32e8be729034fc33b90cf2a56418fbf594d69aa3c0214ad414e5" +dependencies = [ + "cfg-if 1.0.0", + "lexical-core", +] + +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec", + "bitflags", + "cfg-if 1.0.0", + "ryu", + "static_assertions", +] + +[[package]] +name = "libc" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" + +[[package]] +name = "libloading" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883" +dependencies = [ + "cfg-if 1.0.0", + "winapi 0.3.9", +] + +[[package]] +name = "libloading" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" +dependencies = [ + "cfg-if 1.0.0", + "winapi 0.3.9", +] + +[[package]] +name = "lock_api" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memmap2" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b70ca2a6103ac8b665dc150b142ef0e4e89df640c9e6cf295d189c3caebe5a" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" +dependencies = [ + "adler32", +] + +[[package]] +name = "miniz_oxide" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +dependencies = [ + "adler", + "autocfg", +] + +[[package]] +name = "mio" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "mio-extras" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" +dependencies = [ + "lazycell", + "log", + "mio", + "slab", +] + +[[package]] +name = "miow" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", +] + +[[package]] +name = "mktemp" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "975de676448231fcde04b9149d2543077e166b78fc29eae5aa219e7928410da2" +dependencies = [ + "uuid 0.8.2", +] + +[[package]] +name = "ndk" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb167c1febed0a496639034d0c76b3b74263636045db5489eee52143c246e73" +dependencies = [ + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-glue" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdf399b8b7a39c6fb153c4ec32c72fd5fe789df24a647f229c239aa7adb15241" +dependencies = [ + "lazy_static", + "libc", + "log", + "ndk", + "ndk-macro", + "ndk-sys", +] + +[[package]] +name = "ndk-macro" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d" +dependencies = [ + "darling", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ndk-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121" + +[[package]] +name = "net2" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "nix" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055" +dependencies = [ + "bitflags", + "cc", + "cfg-if 0.1.10", + "libc", +] + +[[package]] +name = "nix" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" +dependencies = [ + "bitflags", + "cc", + "cfg-if 1.0.0", + "libc", +] + +[[package]] +name = "nix" +version = "0.23.1" +source = "git+https://github.com/nix-rust/nix.git?rev=ff6f8b8a#ff6f8b8a26c8d61f4341e441acf405402b46a430" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "libc", + "memoffset", +] + +[[package]] +name = "nom" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4" +dependencies = [ + "derivative", + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "numtoa" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "object-pool" +version = "0.5.3" +source = "git+https://github.com/CJP10/object-pool.git?rev=b7461b6ad6dcc93e69c3eee378895ea8593d880e#b7461b6ad6dcc93e69c3eee378895ea8593d880e" +dependencies = [ + "parking_lot 0.11.2", +] + +[[package]] +name = "once_cell" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "osmesa-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88cfece6e95d2e717e0872a7f53a8684712ad13822a7979bc760b9c77ec0013b" +dependencies = [ + "shared_library", +] + +[[package]] +name = "owned_ttf_parser" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f923fb806c46266c02ab4a5b239735c144bdeda724a50ed058e5226f594cde3" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.5", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.3", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "permutate" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b7d5b19a715ffab38693a9dd44b067fdfa2b18eef65bd93562dfe507022fae" + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piston" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f483bc0f9316e80f27c9f083fb20e8ae881a9799ad792cf683a059f3f58d6e6" +dependencies = [ + "pistoncore-event_loop", + "pistoncore-input 1.0.1", + "pistoncore-window", +] + +[[package]] +name = "piston-ai_behavior" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa27af3fe9208a668af67bf296fa50b2e3353f67b0dd5112192c13ccd5464e10" +dependencies = [ + "pistoncore-input 0.28.1", + "serde", + "serde_derive", +] + +[[package]] +name = "piston-float" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad78bf43dcf80e8f950c92b84f938a0fc7590b7f6866fbcbeca781609c115590" + +[[package]] +name = "piston-gfx_texture" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de8d1197620f9774197c2f4fa5bca2b667ec40a9521160d6a4b46ccfdf4ac97c" +dependencies = [ + "gfx", + "gfx_core", + "image", + "piston-texture", +] + +[[package]] +name = "piston-graphics_api_version" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b06401e3ea38467d8d85b394557408107e3e56d827f0d00c9b47e902cbd1bed" + +[[package]] +name = "piston-shaders_graphics2d" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a35f4d08d2b6fd7ff02baab63346d4b7d2fdd5ac3f2e091a5128c22c77a489a" + +[[package]] +name = "piston-texture" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62c93564eef40a9920d026697f63d224efd7ac80981fb418fe1dad447c2d9bdd" + +[[package]] +name = "piston-viewport" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61ecaf8ae0d71dd9cdbbd8662b47659621c09430ff3cb880d154858d3b8ac001" +dependencies = [ + "piston-float", +] + +[[package]] +name = "piston2d-gfx_graphics" +version = "0.73.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84b79261cc8dfd181ad82640a1cac6fcbdb57f3ef447673ec8ec6926e5b33a8d" +dependencies = [ + "draw_state", + "gfx", + "piston-gfx_texture", + "piston-shaders_graphics2d", + "piston2d-graphics 0.40.0", + "shader_version", +] + +[[package]] +name = "piston2d-graphics" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf145cd97b579ad9e0aa19652a217be961021de8e2d0c2a039f20ad6ad72a2b7" +dependencies = [ + "interpolation", + "piston-texture", + "piston-viewport", + "read_color", + "vecmath", +] + +[[package]] +name = "piston2d-graphics" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beb104512055b3bf44fc3d8dad9af88abda16a468d048626ae9b49f634802c67" +dependencies = [ + "fnv", + "interpolation", + "piston-texture", + "piston-viewport", + "read_color", + "rusttype", + "vecmath", +] + +[[package]] +name = "piston2d-sprite" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c735fb7ebd161e94bdab236f33dc4978433e493e30856840dc4057bb192d054" +dependencies = [ + "interpolation", + "piston-ai_behavior", + "piston2d-graphics 0.35.0", + "pistoncore-input 0.28.1", + "uuid 0.6.5", +] + +[[package]] +name = "piston_window" +version = "0.120.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96675d1e6ea52d59751e1fb956c3600b8d67a5d62cacbfb553f2ef07374d93f5" +dependencies = [ + "gfx", + "gfx_device_gl", + "piston", + "piston-texture", + "piston2d-gfx_graphics", + "piston2d-graphics 0.40.0", + "pistoncore-glutin_window", + "shader_version", +] + +[[package]] +name = "pistoncore-event_loop" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d86b3bf012430bb23694348615e37769aca0e9910539ce93674006aeeb77e6" +dependencies = [ + "pistoncore-input 1.0.1", + "pistoncore-window", + "spin_sleep", +] + +[[package]] +name = "pistoncore-glutin_window" +version = "0.69.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66086130e496d440aba286ba47b7d61e33413208323bec3499bf7975fa72dc2e" +dependencies = [ + "gl", + "glutin", + "pistoncore-input 1.0.1", + "pistoncore-window", + "shader_version", +] + +[[package]] +name = "pistoncore-input" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd3f576d1a49fe2a86716b52ae72896319b05eb4d3abe41fb01abd3241cd5f7a" +dependencies = [ + "bitflags", + "piston-viewport", + "serde", + "serde_derive", +] + +[[package]] +name = "pistoncore-input" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2977fed6eb16c554fd445a09a50c8a0c250f4c50f752be46a7bd9dcc5ba471f0" +dependencies = [ + "bitflags", + "piston-viewport", + "serde", + "serde_derive", +] + +[[package]] +name = "pistoncore-window" +version = "0.47.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d62962b4e9cfc13143c77e032302fedc58a8f0f570d30006cdb38ba00a5e50bf" +dependencies = [ + "piston-graphics_api_version", + "pistoncore-input 1.0.1", +] + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" + +[[package]] +name = "plotters" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9428003b84df1496fb9d6eeee9c5f8145cb41ca375eb0dad204328888832811f" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" + +[[package]] +name = "plotters-svg" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0918736323d1baff32ee0eade54984f6f201ad7e97d5cfb5d6ab4a358529615" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "png" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" +dependencies = [ + "bitflags", + "crc32fast", + "deflate", + "miniz_oxide 0.3.7", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi 0.3.9", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28f55143d0548dad60bb4fbdc835a3d7ac6acc3324506450c5fdd6e42903a76" +dependencies = [ + "libc", + "raw-window-handle 0.4.3", +] + +[[package]] +name = "raw-window-handle" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41" +dependencies = [ + "cty", +] + +[[package]] +name = "rayon" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "read_color" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f4c8858baa4ad3c8bcc156ae91a0ffe22b76a3975c40c49b4f04c15c6bce0da" + +[[package]] +name = "redox_liner" +version = "0.5.1" +source = "git+https://gitlab.redox-os.org/redox-os/liner#616e61657fd611c3fe5818e6151300cbcbdd5c06" +dependencies = [ + "bytecount", + "itertools 0.8.2", + "strip-ansi-escapes", + "termion", + "unicode-width", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_termios" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f" +dependencies = [ + "redox_syscall", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.7", + "redox_syscall", + "rust-argon2", + "thiserror", + "zeroize", +] + +[[package]] +name = "regex" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" + +[[package]] +name = "regex-syntax" +version = "0.6.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" + +[[package]] +name = "rust-argon2" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" +dependencies = [ + "base64", + "blake2b_simd", + "constant_time_eq", + "crossbeam-utils", +] + +[[package]] +name = "rusttype" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc7c727aded0be18c5b80c1640eae0ac8e396abf6fa8477d96cb37d18ee5ec59" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "rustversion" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8" + +[[package]] +name = "ryu" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" + +[[package]] +name = "scoped_threadpool" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scopes" +version = "0.1.0" + +[[package]] +name = "serde" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03" + +[[package]] +name = "serde_cbor" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" +dependencies = [ + "half", + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" +dependencies = [ + "itoa 1.0.2", + "ryu", + "serde", +] + +[[package]] +name = "serial_test" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eec42e7232e5ca56aa59d63af3c7f991fe71ee6a3ddd2d3480834cf3902b007" +dependencies = [ + "futures", + "lazy_static", + "log", + "parking_lot 0.12.1", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1b95bb2f4f624565e8fe8140c789af7e2082c0e0561b5a82a1b678baa9703dc" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "shader_version" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfadbf7574784ee97f062ace17e1008fb5e7f46dd714b7dd46baf6efebd30e26" +dependencies = [ + "piston-graphics_api_version", +] + +[[package]] +name = "shared_library" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" +dependencies = [ + "lazy_static", + "libc", +] + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "small" +version = "0.1.0" +source = "git+https://gitlab.redox-os.org/redox-os/small#4374ae30a2de281d686e14a1626dcb22e23ffae4" +dependencies = [ + "serde", +] + +[[package]] +name = "smallvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" + +[[package]] +name = "smithay-client-toolkit" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4750c76fd5d3ac95fa3ed80fe667d6a3d8590a960e5b575b98eea93339a80b80" +dependencies = [ + "andrew", + "bitflags", + "calloop", + "dlib 0.4.2", + "lazy_static", + "log", + "memmap2", + "nix 0.18.0", + "wayland-client", + "wayland-cursor", + "wayland-protocols", +] + +[[package]] +name = "spin_sleep" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cafa7900db085f4354dbc7025e25d7a839a14360ea13b5fc4fd717f2d3b23134" +dependencies = [ + "once_cell", + "winapi 0.3.9", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strip-ansi-escapes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "011cbb39cf7c1f62871aea3cc46e5817b0937b49e9447370c93cacbe93a766d8" +dependencies = [ + "vte", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "strsim" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" + +[[package]] +name = "syn" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "termion" +version = "1.5.6" +source = "git+https://gitlab.redox-os.org/redox-os/termion#8054e082b01c3f45f89f0db96bc374f1e378deb1" +dependencies = [ + "libc", + "numtoa", + "redox_syscall", + "redox_termios", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tiff" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" +dependencies = [ + "jpeg-decoder", + "miniz_oxide 0.4.4", + "weezl", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "ttf-parser" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e5d7cd7ab3e47dda6e56542f4bbf3824c15234958c6e1bd6aaa347e93499fdc" + +[[package]] +name = "types-rs" +version = "0.1.0" +dependencies = [ + "itertools 0.9.0", + "lexical", + "small", +] + +[[package]] +name = "unicode-ident" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" + +[[package]] +name = "unicode-segmentation" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" + +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unicode-xid" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" + +[[package]] +name = "users" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4227e95324a443c9fcb06e03d4d85e91aabe9a5a02aa818688b6918b6af486" +dependencies = [ + "libc", + "log", +] + +[[package]] +name = "utf8parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" + +[[package]] +name = "uuid" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363" +dependencies = [ + "cfg-if 0.1.10", + "rand 0.4.6", +] + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.7", +] + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "vecmath" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ae1e0d85bca567dee1dcf87fb1ca2e792792f66f87dced8381f99cd91156a" +dependencies = [ + "piston-float", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "vte" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983" +dependencies = [ + "arrayvec", + "utf8parse", + "vte_generate_state_changes", +] + +[[package]] +name = "vte_generate_state_changes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi 0.3.9", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" + +[[package]] +name = "wayland-client" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ab332350e502f159382201394a78e3cc12d0f04db863429260164ea40e0355" +dependencies = [ + "bitflags", + "downcast-rs", + "libc", + "nix 0.20.0", + "scoped-tls", + "wayland-commons", + "wayland-scanner", + "wayland-sys", +] + +[[package]] +name = "wayland-commons" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21817947c7011bbd0a27e11b17b337bfd022e8544b071a2641232047966fbda" +dependencies = [ + "nix 0.20.0", + "once_cell", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-cursor" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be610084edd1586d45e7bdd275fe345c7c1873598caa464c4fb835dee70fa65a" +dependencies = [ + "nix 0.20.0", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-egl" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99ba1ab1e18756b23982d36f08856d521d7df45015f404a2d7c4f0b2d2f66956" +dependencies = [ + "wayland-client", + "wayland-sys", +] + +[[package]] +name = "wayland-protocols" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "286620ea4d803bacf61fa087a4242ee316693099ee5a140796aaba02b29f861f" +dependencies = [ + "bitflags", + "wayland-client", + "wayland-commons", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1" +dependencies = [ + "proc-macro2", + "quote", + "xml-rs", +] + +[[package]] +name = "wayland-sys" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d841fca9aed7febf9bed2e9796c49bf58d4152ceda8ac949ebe00868d8f0feb8" +dependencies = [ + "dlib 0.5.0", + "lazy_static", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "winit" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da4eda6fce0eb84bd0a33e3c8794eb902e1033d0a1d5a31bc4f19b1b4bbff597" +dependencies = [ + "bitflags", + "cocoa 0.24.0", + "core-foundation 0.9.3", + "core-graphics 0.22.3", + "core-video-sys", + "dispatch", + "instant", + "lazy_static", + "libc", + "log", + "mio", + "mio-extras", + "ndk", + "ndk-glue", + "ndk-sys", + "objc", + "parking_lot 0.11.2", + "percent-encoding", + "raw-window-handle 0.3.4", + "smithay-client-toolkit", + "wayland-client", + "winapi 0.3.9", + "x11-dl", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "x11-dl" +version = "2.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea26926b4ce81a6f5d9d0f3a0bc401e5a37c6ae14a1bfaa8ff6099ca80038c59" +dependencies = [ + "lazy_static", + "libc", + "pkg-config", +] + +[[package]] +name = "xcursor" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7" +dependencies = [ + "nom", +] + +[[package]] +name = "xdg" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4583db5cbd4c4c0303df2d15af80f0539db703fa1c68802d4cbbd2dd0f88f6" +dependencies = [ + "dirs", +] + +[[package]] +name = "xml-rs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" + +[[package]] +name = "zeroize" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] diff --git a/nixpkgs/pkgs/shells/ion/build-script.patch b/nixpkgs/pkgs/shells/ion/build-script.patch new file mode 100644 index 000000000000..869289289592 --- /dev/null +++ b/nixpkgs/pkgs/shells/ion/build-script.patch @@ -0,0 +1,17 @@ +--- a/build.rs ++++ b/build.rs +@@ -23,13 +23,7 @@ fn write_version_file() -> io::Result<()> { + let target = env::var("TARGET").unwrap(); + let version_fname = Path::new(&env::var("OUT_DIR").unwrap()).join("version_string"); + let mut version_file = File::create(&version_fname)?; +- write!( +- &mut version_file, +- "r#\"ion {} ({})\nrev {}\"#", +- version, +- target, +- get_git_rev()?.trim() +- )?; ++ write!(&mut version_file, "r#\"ion {version} ({target})\n\"#")?; + Ok(()) + } + diff --git a/nixpkgs/pkgs/shells/ion/default.nix b/nixpkgs/pkgs/shells/ion/default.nix new file mode 100644 index 000000000000..72b6387f8e16 --- /dev/null +++ b/nixpkgs/pkgs/shells/ion/default.nix @@ -0,0 +1,56 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, stdenv +, darwin +}: + +rustPlatform.buildRustPackage rec { + pname = "ion"; + version = "unstable-2022-11-27"; + + src = fetchFromGitHub { + owner = "redox-os"; + repo = "ion"; + rev = "3bb8966fc99ba223033e1e02b0a6d50fc25cbef4"; + sha256 = "sha256-6KW/YkMQFeGb1i+1YdADZRW89UruHsfPhMq9Cvxjl/4="; + }; + + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "calculate-0.7.0" = "sha256-wUmi8XLgEMgECeaCM0r1KxJ+oTd47QozgFBANKSwt24="; + "decimal-2.1.0" = "sha256-s5mDRCkaDBUdaywYEJzTfe7qH25sG5UUo5iVmPE+zrw="; + "nix-0.23.1" = "sha256-yWJYrQt9piJHhqBkH/hn9dsXR8oqzl0RKPrzx9fvqlw="; + "object-pool-0.5.3" = "sha256-LWP0b62sk2dcqnQEEvLmZVvWSVLJ722yH/zIIPL93W4="; + "redox_liner-0.5.1" = "sha256-OT9E4AwQgm5NngcCtcno1VKhkS4d8Eq/l+8aYHvXtTY="; + "small-0.1.0" = "sha256-QIzEfFc0EDEllf+YxVyV7j/PvC7nVWiK0YYBoZBQZ3Q="; + "termion-1.5.6" = "sha256-NTY/2SbqkSyslnN5Xg6lrQ0MTrOhTMHqN+XXqN6Nkr8="; + }; + }; + + patches = [ + # remove git revision from the build script to fix build + ./build-script.patch + ]; + + buildInputs = lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.Security + ]; + + checkFlags = lib.optionals stdenv.isDarwin [ + # test assumes linux + "--skip=binary::completer::tests::filename_completion" + ]; + + passthru = { + shellPath = "/bin/ion"; + }; + + meta = with lib; { + description = "Modern system shell with simple (and powerful) syntax"; + homepage = "https://gitlab.redox-os.org/redox-os/ion"; + license = licenses.mit; + maintainers = with maintainers; [ dywedir ]; + }; +} diff --git a/nixpkgs/pkgs/shells/jush/default.nix b/nixpkgs/pkgs/shells/jush/default.nix new file mode 100644 index 000000000000..a09024608bb6 --- /dev/null +++ b/nixpkgs/pkgs/shells/jush/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, editline }: + +stdenv.mkDerivation rec { + pname = "jush"; + version = "0.1"; + + src = fetchFromGitHub { + owner = "troglobit"; + repo = pname; + rev = "v${version}"; + sha256 = "1azvghrh31gawd798a254ml4id642qvbva64zzg30pjszh1087n8"; + }; + + strictDeps = true; + nativeBuildInputs = [ autoreconfHook pkg-config ]; + + buildInputs = [ editline ]; + + passthru.shellPath = "/bin/jush"; + + meta = with lib; { + description = "just a useless shell"; + homepage = "https://github.com/troglobit/jush"; + license = licenses.isc; + platforms = platforms.all; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/nixpkgs/pkgs/shells/ksh/default.nix b/nixpkgs/pkgs/shells/ksh/default.nix new file mode 100644 index 000000000000..cfd278aaca65 --- /dev/null +++ b/nixpkgs/pkgs/shells/ksh/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, meson, ninja, fetchFromGitHub, which, python3, fetchpatch +, libiconv }: + +stdenv.mkDerivation rec { + pname = "ksh"; + version = "2020.0.0"; + + src = fetchFromGitHub { + owner = "att"; + repo = "ast"; + rev = version; + sha256 = "0cdxz0nhpq03gb9rd76fn0x1yzs2c8q289b7vcxnzlsrz1imz65j"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/att/ast/commit/11983a71f5e29df578b7e2184400728b4e3f451d.patch"; + sha256 = "1n9558c4v2qpgpjb1vafs29n3qn3z0770wr1ayc0xjf5z5j4g3kv"; + }) + ]; + + nativeBuildInputs = [ meson ninja which python3 ]; + + buildInputs = [ libiconv ]; + + strictDeps = true; + + meta = with lib; { + description = "KornShell Command And Programming Language"; + longDescription = '' + The KornShell language was designed and developed by David G. Korn at + AT&T Bell Laboratories. It is an interactive command language that + provides access to the UNIX system and to many other systems, on the + many different computers and workstations on which it is implemented. + ''; + homepage = "https://github.com/att/ast"; + license = licenses.cpl10; + maintainers = with maintainers; [ ]; + platforms = platforms.all; + }; + + passthru = { + shellPath = "/bin/ksh"; + }; +} diff --git a/nixpkgs/pkgs/shells/liquidprompt/default.nix b/nixpkgs/pkgs/shells/liquidprompt/default.nix new file mode 100644 index 000000000000..47e2e72c7ab7 --- /dev/null +++ b/nixpkgs/pkgs/shells/liquidprompt/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "liquidprompt"; + version = "2.1.2"; + + src = fetchFromGitHub { + owner = "nojhan"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-7mnrXLqnCdOuS2aRs4tVLfO8SRFrqZHNM40gWE/CVFI="; + }; + + strictDeps = true; + installPhase = '' + install -D -m 0444 liquidprompt $out/bin/liquidprompt + install -D -m 0444 liquidpromptrc-dist $out/share/doc/liquidprompt/liquidpromptrc-dist + install -D -m 0444 liquid.theme $out/share/doc/liquidprompt/liquid.theme + + install -D -m 0444 liquidprompt.plugin.zsh \ + $out/share/zsh/plugins/liquidprompt/liquidprompt.plugin.zsh + install -D -m 0444 liquidprompt \ + $out/share/zsh/plugins/liquidprompt/liquidprompt + ''; + + meta = with lib; { + description = "A full-featured & carefully designed adaptive prompt for Bash & Zsh"; + homepage = "https://github.com/nojhan/liquidprompt"; + license = licenses.agpl3; + platforms = platforms.all; + maintainers = with maintainers; [ gerschtli ]; + }; +} diff --git a/nixpkgs/pkgs/shells/loksh/default.nix b/nixpkgs/pkgs/shells/loksh/default.nix new file mode 100644 index 000000000000..39231e6e1442 --- /dev/null +++ b/nixpkgs/pkgs/shells/loksh/default.nix @@ -0,0 +1,60 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ncurses +, ninja +, pkg-config +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "loksh"; + version = "7.4"; + + src = fetchFromGitHub { + owner = "dimkr"; + repo = finalAttrs.pname; + rev = finalAttrs.version; + fetchSubmodules = true; + sha256 = "sha256-gQK9gq6MsKVyOikOW0sW/SbIM1K/3I8pn58P/SqzKys="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + ]; + + buildInputs = [ + ncurses + ]; + + strictDeps = true; + + postInstall = '' + mv $out/bin/ksh $out/bin/loksh + mv $out/share/man/man1/ksh.1 $out/share/man/man1/loksh.1 + mv $out/share/man/man1/sh.1 $out/share/man/man1/loksh-sh.1 + ''; + + meta = with lib; { + homepage = "https://github.com/dimkr/loksh"; + description = "Linux port of OpenBSD's ksh"; + longDescription = '' + loksh is a Linux port of OpenBSD's ksh. + + Unlike other ports of ksh, loksh targets only one platform, follows + upstream closely and keeps changes to a minimum. loksh does not add any + extra features; this reduces the risk of introducing security + vulnerabilities and makes loksh a good fit for resource-constrained + systems. + ''; + license = licenses.publicDomain; + maintainers = with maintainers; [ cameronnemo ]; + platforms = platforms.linux; + }; + + passthru = { + shellPath = "/bin/loksh"; + }; +}) diff --git a/nixpkgs/pkgs/shells/mrsh/default.nix b/nixpkgs/pkgs/shells/mrsh/default.nix new file mode 100644 index 000000000000..2b9bc4e3e22e --- /dev/null +++ b/nixpkgs/pkgs/shells/mrsh/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, readline }: + +stdenv.mkDerivation rec { + pname = "mrsh-unstable"; + version = "2021-01-10"; + + src = fetchFromGitHub { + owner = "emersion"; + repo = "mrsh"; + rev = "9f9884083831ea1f94bdda5151c5df3888932849"; + sha256 = "0vvdwzw3fq74lwgmy6xxkk01sd68fzhsw84c750lm1dma22xhjci"; + }; + + strictDeps = true; + nativeBuildInputs = [ meson ninja pkg-config ]; + buildInputs = [ readline ]; + + doCheck = true; + + meta = with lib; { + description = "A minimal POSIX shell"; + homepage = "https://mrsh.sh"; + license = licenses.mit; + maintainers = with maintainers; [ matthiasbeyer ]; + platforms = platforms.unix; + }; + + passthru = { + shellPath = "/bin/mrsh"; + }; +} diff --git a/nixpkgs/pkgs/shells/murex/default.nix b/nixpkgs/pkgs/shells/murex/default.nix new file mode 100644 index 000000000000..81b585b28fdf --- /dev/null +++ b/nixpkgs/pkgs/shells/murex/default.nix @@ -0,0 +1,27 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "murex"; + version = "5.1.2210"; + + src = fetchFromGitHub { + owner = "lmorg"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-N0sWTWZJT4hjivTreYfG5VkxiWgTjlH+/9VZD6YKQXY="; + }; + + vendorHash = "sha256-PClKzvpztpry8xsYLfWB/9s/qI5k2m8qHBxkxY0AJqI="; + + subPackages = [ "." ]; + + meta = with lib; { + description = "Bash-like shell and scripting environment with advanced features designed for safety and productivity"; + homepage = "https://murex.rocks"; + license = licenses.gpl2; + maintainers = with maintainers; [ dit7ya kashw2 ]; + }; +} diff --git a/nixpkgs/pkgs/shells/nix-your-shell/default.nix b/nixpkgs/pkgs/shells/nix-your-shell/default.nix new file mode 100644 index 000000000000..8b2c36daf127 --- /dev/null +++ b/nixpkgs/pkgs/shells/nix-your-shell/default.nix @@ -0,0 +1,28 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, nix-update-script +}: +rustPlatform.buildRustPackage rec { + pname = "nix-your-shell"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "MercuryTechnologies"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-5zHjz0NOKcZCuR6QaLrwOXih3Xoqf2uBrJnxTX/TQok="; + }; + + cargoSha256 = "sha256-4Z/z4VgnJQd8Uc0tMDnx7sChzXtG5ZDL88jTlhPSonM="; + + meta = with lib; { + mainProgram = "nix-your-shell"; + description = "A `nix` and `nix-shell` wrapper for shells other than `bash`"; + homepage = "https://github.com/MercuryTechnologies/nix-your-shell"; + license = [ licenses.mit ]; + maintainers = [ maintainers._9999years ]; + }; + + passthru.updateScript = nix-update-script { }; +} diff --git a/nixpkgs/pkgs/shells/nsh/default.nix b/nixpkgs/pkgs/shells/nsh/default.nix new file mode 100644 index 000000000000..881d14002ebd --- /dev/null +++ b/nixpkgs/pkgs/shells/nsh/default.nix @@ -0,0 +1,29 @@ +{ lib, rustPlatform, fetchFromGitHub }: + +rustPlatform.buildRustPackage rec { + pname = "nsh"; + version = "0.4.2"; + + src = fetchFromGitHub { + owner = "nuta"; + repo = pname; + rev = "v${version}"; + sha256 = "1479wv8h5l2b0cwp27vpybq50nyvszhjxmn76n2bz3fchr0lrcbp"; + }; + + cargoSha256 = "1kxjr4ymns95g6jz94107nqmd71m2xh8k19gcsy08650gjrn5cz3"; + + doCheck = false; + + meta = with lib; { + description = "A command-line shell like fish, but POSIX compatible"; + homepage = "https://github.com/nuta/nsh"; + changelog = "https://github.com/nuta/nsh/raw/v${version}/docs/changelog.md"; + license = [ licenses.cc0 /* or */ licenses.mit ]; + maintainers = [ maintainers.marsam ]; + }; + + passthru = { + shellPath = "/bin/nsh"; + }; +} diff --git a/nixpkgs/pkgs/shells/nushell/default.nix b/nixpkgs/pkgs/shells/nushell/default.nix new file mode 100644 index 000000000000..acd7494fd3cc --- /dev/null +++ b/nixpkgs/pkgs/shells/nushell/default.nix @@ -0,0 +1,77 @@ +{ stdenv +, lib +, fetchFromGitHub +, rustPlatform +, openssl +, zlib +, zstd +, pkg-config +, python3 +, xorg +, Libsystem +, AppKit +, Security +, nghttp2 +, libgit2 +, doCheck ? true +, withDefaultFeatures ? true +, additionalFeatures ? (p: p) +, testers +, nushell +, nix-update-script +}: + +let + version = "0.86.0"; +in + +rustPlatform.buildRustPackage { + pname = "nushell"; + inherit version; + + src = fetchFromGitHub { + owner = "nushell"; + repo = "nushell"; + rev = version; + hash = "sha256-jUZKqsu0/RO4mc+hzjis1mNrohj1JzM17Z8e2Ggxlfs="; + }; + + cargoHash = "sha256-WDGhuc2ZGDwfh7X/oRTZLzmKPj1jSnQFL4sy7KYt5Js="; + + nativeBuildInputs = [ pkg-config ] + ++ lib.optionals (withDefaultFeatures && stdenv.isLinux) [ python3 ] + ++ lib.optionals stdenv.isDarwin [ rustPlatform.bindgenHook ]; + + buildInputs = [ openssl zstd ] + ++ lib.optionals stdenv.isDarwin [ zlib Libsystem Security ] + ++ lib.optionals (withDefaultFeatures && stdenv.isLinux) [ xorg.libX11 ] + ++ lib.optionals (withDefaultFeatures && stdenv.isDarwin) [ AppKit nghttp2 libgit2 ]; + + buildNoDefaultFeatures = !withDefaultFeatures; + buildFeatures = additionalFeatures [ ]; + + inherit doCheck; + + checkPhase = '' + runHook preCheck + echo "Running cargo test" + HOME=$(mktemp -d) cargo test + runHook postCheck + ''; + + passthru = { + shellPath = "/bin/nu"; + tests.version = testers.testVersion { + package = nushell; + }; + updateScript = nix-update-script { }; + }; + + meta = with lib; { + description = "A modern shell written in Rust"; + homepage = "https://www.nushell.sh/"; + license = licenses.mit; + maintainers = with maintainers; [ Br1ght0ne johntitor marsam ]; + mainProgram = "nu"; + }; +} diff --git a/nixpkgs/pkgs/shells/nushell/nu_scripts/default.nix b/nixpkgs/pkgs/shells/nushell/nu_scripts/default.nix new file mode 100644 index 000000000000..5aa0adae6ebb --- /dev/null +++ b/nixpkgs/pkgs/shells/nushell/nu_scripts/default.nix @@ -0,0 +1,37 @@ +{ lib +, stdenvNoCC +, fetchFromGitHub +, unstableGitUpdater +}: + +stdenvNoCC.mkDerivation rec { + pname = "nu_scripts"; + version = "unstable-2023-10-19"; + + src = fetchFromGitHub { + owner = "nushell"; + repo = pname; + rev = "7b2856ddff8afac538d826df4abc08325c4be39d"; + hash = "sha256-9OFKtaADDV5I5Yu0sCfQABAmf8yqwX2QwDhPPkh5BEo="; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/nu_scripts + mv ./* $out/share/nu_scripts + + runHook postInstall + ''; + + passthru.updateScript = unstableGitUpdater { }; + + meta = { + description = "A place to share Nushell scripts with each other"; + homepage = "https://github.com/nushell/nu_scripts"; + license = lib.licenses.free; + + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.CardboardTurkey ]; + }; +} diff --git a/nixpkgs/pkgs/shells/nushell/plugins/default.nix b/nixpkgs/pkgs/shells/nushell/plugins/default.nix new file mode 100644 index 000000000000..f4571d4da002 --- /dev/null +++ b/nixpkgs/pkgs/shells/nushell/plugins/default.nix @@ -0,0 +1,9 @@ +{ lib, newScope, IOKit, CoreFoundation, Foundation, Security }: + +lib.makeScope newScope (self: with self; { + gstat = callPackage ./gstat.nix { inherit Security; }; + formats = callPackage ./formats.nix { inherit IOKit Foundation; }; + query = callPackage ./query.nix { inherit IOKit CoreFoundation; }; + regex = callPackage ./regex.nix { inherit IOKit; }; + net = callPackage ./net.nix { inherit IOKit CoreFoundation; }; +}) diff --git a/nixpkgs/pkgs/shells/nushell/plugins/formats.nix b/nixpkgs/pkgs/shells/nushell/plugins/formats.nix new file mode 100644 index 000000000000..0603ba9bfb6b --- /dev/null +++ b/nixpkgs/pkgs/shells/nushell/plugins/formats.nix @@ -0,0 +1,36 @@ +{ stdenv +, lib +, rustPlatform +, nushell +, pkg-config +, IOKit +, Foundation +, nix-update-script +}: + +rustPlatform.buildRustPackage rec { + pname = "nushell_plugin_formats"; + inherit (nushell) version src; + cargoHash = "sha256-Nuo+i1j2l5p3p1hFWipSk0EqZiR+9ZsQyTl3YmyBk+0="; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = lib.optionals stdenv.isDarwin [ IOKit Foundation ]; + cargoBuildFlags = [ "--package nu_plugin_formats" ]; + + checkPhase = '' + cargo test --manifest-path crates/nu_plugin_formats/Cargo.toml + ''; + + passthru.updateScript = nix-update-script { + # Skip the version check and only check the hash because we inherit version from nushell. + extraArgs = [ "--version=skip" ]; + }; + + meta = with lib; { + description = "A formats plugin for Nushell"; + homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_formats"; + license = licenses.mpl20; + maintainers = with maintainers; [ viraptor aidalgol ]; + platforms = with platforms; all; + }; +} diff --git a/nixpkgs/pkgs/shells/nushell/plugins/gstat.nix b/nixpkgs/pkgs/shells/nushell/plugins/gstat.nix new file mode 100644 index 000000000000..e35a7c483d86 --- /dev/null +++ b/nixpkgs/pkgs/shells/nushell/plugins/gstat.nix @@ -0,0 +1,36 @@ +{ stdenv +, lib +, rustPlatform +, openssl +, nushell +, pkg-config +, Security +, nix-update-script +}: + +rustPlatform.buildRustPackage rec { + pname = "nushell_plugin_gstat"; + inherit (nushell) version src; + cargoHash = "sha256-GIIY4wK85igsfkwEiQ2+jJQTv5qekqx4y+OG0yt8TgE="; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ]; + cargoBuildFlags = [ "--package nu_plugin_gstat" ]; + + checkPhase = '' + cargo test --manifest-path crates/nu_plugin_gstat/Cargo.toml + ''; + + passthru.updateScript = nix-update-script { + # Skip the version check and only check the hash because we inherit version from nushell. + extraArgs = [ "--version=skip" ]; + }; + + meta = with lib; { + description = "A git status plugin for Nushell"; + homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_gstat"; + license = licenses.mpl20; + maintainers = with maintainers; [ mrkkrp aidalgol ]; + platforms = with platforms; all; + }; +} diff --git a/nixpkgs/pkgs/shells/nushell/plugins/net.nix b/nixpkgs/pkgs/shells/nushell/plugins/net.nix new file mode 100644 index 000000000000..031fa30eb61e --- /dev/null +++ b/nixpkgs/pkgs/shells/nushell/plugins/net.nix @@ -0,0 +1,41 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, stdenv +, IOKit +, CoreFoundation +, unstableGitUpdater +}: + +rustPlatform.buildRustPackage { + pname = "nu-plugin-net"; + version = "unstable-2023-10-24"; + + src = fetchFromGitHub { + owner = "fennewald"; + repo = "nu_plugin_net"; + rev = "8b63996ea2ff8bf282c9b0f5f6d01960cfe3d074"; + hash = "sha256-QFo2cMI41GDBsuPNay5MyVyY+HdrLjAWedz8kDNA3JY="; + }; + + cargoHash = "sha256-ekfUQOsaWdpDASnRzoYh5Y/p3BnP7rvSYCCWQ6DJDnE="; + + nativeBuildInputs = [ + rustPlatform.bindgenHook + ]; + + buildInputs = lib.optionals stdenv.isDarwin [ + CoreFoundation + IOKit + ]; + + passthru.updateScript = unstableGitUpdater { }; + + meta = with lib; { + description = "A nushell plugin to list system network interfaces"; + homepage = "https://github.com/fennewald/nu_plugin_net"; + license = licenses.mit; + maintainers = with maintainers; [ happysalada ]; + mainProgram = "nu-plugin-net"; + }; +} diff --git a/nixpkgs/pkgs/shells/nushell/plugins/query.nix b/nixpkgs/pkgs/shells/nushell/plugins/query.nix new file mode 100644 index 000000000000..b34d0b17df13 --- /dev/null +++ b/nixpkgs/pkgs/shells/nushell/plugins/query.nix @@ -0,0 +1,34 @@ +{ stdenv +, lib +, rustPlatform +, nushell +, IOKit +, CoreFoundation +, nix-update-script +}: + +rustPlatform.buildRustPackage { + pname = "nushell_plugin_query"; + inherit (nushell) version src; + cargoHash = "sha256-l32TKBM01JAiUqhkxPsg76dodirZ/NuGn6/KKgHKS8I="; + + buildInputs = lib.optionals stdenv.isDarwin [ IOKit CoreFoundation ]; + cargoBuildFlags = [ "--package nu_plugin_query" ]; + + checkPhase = '' + cargo test --manifest-path crates/nu_plugin_query/Cargo.toml + ''; + + passthru.updateScript = nix-update-script { + # Skip the version check and only check the hash because we inherit version from nushell. + extraArgs = [ "--version=skip" ]; + }; + + meta = with lib; { + description = "A Nushell plugin to query JSON, XML, and various web data"; + homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_query"; + license = licenses.mpl20; + maintainers = with maintainers; [ happysalada aidalgol ]; + platforms = with platforms; all; + }; +} diff --git a/nixpkgs/pkgs/shells/nushell/plugins/regex.nix b/nixpkgs/pkgs/shells/nushell/plugins/regex.nix new file mode 100644 index 000000000000..4689a8390257 --- /dev/null +++ b/nixpkgs/pkgs/shells/nushell/plugins/regex.nix @@ -0,0 +1,35 @@ +{ stdenv +, lib +, rustPlatform +, fetchFromGitHub +, nix-update-script +, IOKit +}: + +rustPlatform.buildRustPackage { + pname = "nushell_plugin_regex"; + version = "unstable-2023-10-08"; + + src = fetchFromGitHub { + owner = "fdncred"; + repo = "nu_plugin_regex"; + rev = "e1aa88e703f1f632ede685dd733472d34dd0c8e7"; + hash = "sha256-GJgnsaeNDJoJjw8RPw6wpEq1mIult18Eh4frl8Plgxc="; + }; + + cargoHash = "sha256-AACpzSavY6MlYnl1lDYxVlfsEvEpNK0u8SzsoSZbqFc="; + + buildInputs = lib.optionals stdenv.isDarwin [ IOKit ]; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = with lib; { + description = "A Nushell plugin to parse regular expressions"; + homepage = "https://github.com/fdncred/nu_plugin_regex"; + license = licenses.mit; + maintainers = with maintainers; [ aidalgol ]; + platforms = with platforms; all; + }; +} diff --git a/nixpkgs/pkgs/shells/oh/default.nix b/nixpkgs/pkgs/shells/oh/default.nix new file mode 100644 index 000000000000..10bd86ba0594 --- /dev/null +++ b/nixpkgs/pkgs/shells/oh/default.nix @@ -0,0 +1,25 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "oh"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "michaelmacinnis"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-DMxC5fv5ZLDv7gMajC/eyJd2YpO+OXFdvwAPYotnczw="; + }; + + vendorHash = "sha256-f4rqXOu6yXUzNsseSaV9pb8c2KXItYOalB5pfH3Acnc="; + + meta = with lib; { + homepage = "https://github.com/michaelmacinnis/oh"; + description = "A new Unix shell"; + license = licenses.mit; + }; + + passthru = { + shellPath = "/bin/oh"; + }; +} diff --git a/nixpkgs/pkgs/shells/oil/default.nix b/nixpkgs/pkgs/shells/oil/default.nix new file mode 100644 index 000000000000..1fe9fe7f664f --- /dev/null +++ b/nixpkgs/pkgs/shells/oil/default.nix @@ -0,0 +1,54 @@ +{ stdenv, lib, fetchurl, symlinkJoin, withReadline ? true, readline }: + +let + readline-all = symlinkJoin { + name = "readline-all"; paths = [ readline readline.dev ]; + }; +in +stdenv.mkDerivation rec { + pname = "oil"; + version = "0.17.0"; + + src = fetchurl { + url = "https://www.oilshell.org/download/oil-${version}.tar.xz"; + hash = "sha256-H7oWI3+660MhMdDTTPX11/YalnItzhxfdBrtwKR8xrM="; + }; + + postPatch = '' + patchShebangs build + ''; + + preInstall = '' + mkdir -p $out/bin + ''; + + strictDeps = true; + buildInputs = lib.optional withReadline readline; + configureFlags = [ + "--datarootdir=${placeholder "out"}" + ] ++ lib.optionals withReadline [ + "--with-readline" + "--readline=${readline-all}" + ]; + + # Stripping breaks the bundles by removing the zip file from the end. + dontStrip = true; + + meta = { + description = "A new unix shell"; + homepage = "https://www.oilshell.org/"; + + license = with lib.licenses; [ + psfl # Includes a portion of the python interpreter and standard library + asl20 # Licence for Oil itself + ]; + + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ lheckemann alva ]; + changelog = "https://www.oilshell.org/release/${version}/changelog.html"; + }; + + passthru = { + shellPath = "/bin/osh"; + }; +} diff --git a/nixpkgs/pkgs/shells/oksh/default.nix b/nixpkgs/pkgs/shells/oksh/default.nix new file mode 100644 index 000000000000..d90c4003cb8f --- /dev/null +++ b/nixpkgs/pkgs/shells/oksh/default.nix @@ -0,0 +1,33 @@ +{ stdenv, lib, fetchFromGitHub, buildPackages }: + +stdenv.mkDerivation rec { + pname = "oksh"; + version = "7.3"; + + src = fetchFromGitHub { + owner = "ibara"; + repo = pname; + rev = "${pname}-${version}"; + sha256 = "sha256-uGiPbkIeKH9zu+xKJJLCYFnyejWLdq7bE59yub3f3KM="; + }; + + strictDeps = true; + + postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + substituteInPlace configure --replace "./conftest" "echo" + ''; + + configureFlags = [ "--no-strip" ]; + + meta = with lib; { + description = "Portable OpenBSD ksh, based on the Public Domain Korn Shell (pdksh)"; + homepage = "https://github.com/ibara/oksh"; + license = licenses.publicDomain; + maintainers = with maintainers; [ siraben ]; + platforms = platforms.all; + }; + + passthru = { + shellPath = "/bin/oksh"; + }; +} diff --git a/nixpkgs/pkgs/shells/powershell/default.nix b/nixpkgs/pkgs/shells/powershell/default.nix new file mode 100644 index 000000000000..58485bc8c9aa --- /dev/null +++ b/nixpkgs/pkgs/shells/powershell/default.nix @@ -0,0 +1,139 @@ +{ lib +, stdenv +, fetchurl +, less +, makeWrapper +, autoPatchelfHook +, curl +, icu +, libuuid +, libunwind +, openssl +, darwin +, lttng-ust +, pam +, testers +, powershell +, writeShellScript +, common-updater-scripts +, gnused +, jq +}: + +let + ext = stdenv.hostPlatform.extensions.sharedLibrary; + platformLdLibraryPath = { + darwin = "DYLD_FALLBACK_LIBRARY_PATH"; + linux = "LD_LIBRARY_PATH"; + }.${stdenv.hostPlatform.parsed.kernel.name} or (throw "unsupported platform"); +in +stdenv.mkDerivation rec { + pname = "powershell"; + version = "7.3.9"; + + src = passthru.sources.${stdenv.hostPlatform.system} + or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + + sourceRoot = "."; + + strictDeps = true; + + nativeBuildInputs = [ + less + makeWrapper + ] ++ lib.optionals stdenv.isLinux [ + autoPatchelfHook + ]; + + buildInputs = [ + curl + icu + libuuid + libunwind + openssl + ] ++ lib.optionals stdenv.isDarwin [ + darwin.Libsystem + ] ++ lib.optionals stdenv.isLinux [ + lttng-ust + pam + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,share/powershell} + cp -R * $out/share/powershell + chmod +x $out/share/powershell/pwsh + makeWrapper $out/share/powershell/pwsh $out/bin/pwsh \ + --prefix ${platformLdLibraryPath} : "${lib.makeLibraryPath buildInputs}" \ + --set TERM xterm \ + --set POWERSHELL_TELEMETRY_OPTOUT 1 \ + --set DOTNET_CLI_TELEMETRY_OPTOUT 1 + + '' + lib.optionalString (stdenv.isLinux && stdenv.isx86_64) '' + patchelf --replace-needed libcrypto${ext}.1.0.0 libcrypto${ext} $out/share/powershell/libmi.so + patchelf --replace-needed libssl${ext}.1.0.0 libssl${ext} $out/share/powershell/libmi.so + + '' + lib.optionalString stdenv.isLinux '' + patchelf --replace-needed liblttng-ust${ext}.0 liblttng-ust${ext}.1 $out/share/powershell/libcoreclrtraceptprovider.so + + '' + '' + runHook postInstall + ''; + + dontStrip = true; + + passthru = { + shellPath = "/bin/pwsh"; + sources = { + aarch64-darwin = fetchurl { + url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-osx-arm64.tar.gz"; + hash = "sha256-g63hMkJUIYFpSl9NylCQs0WYdq/8S3UaFVtRjhZOs+s="; + }; + aarch64-linux = fetchurl { + url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-linux-arm64.tar.gz"; + hash = "sha256-zy6VZyXj9TV5QlVFnCgiB6XfIOyS79kPOFhvMRpOrP4="; + }; + x86_64-darwin = fetchurl { + url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-osx-x64.tar.gz"; + hash = "sha256-DI+m3Ik1Zw293H6VR19DNAECBApqdIENlrK2/D/3vNc="; + }; + x86_64-linux = fetchurl { + url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-linux-x64.tar.gz"; + hash = "sha256-eHlh46eV+g3eCiKalVGixwKY9mlk2lXRwUJF6By5lP0="; + }; + }; + tests.version = testers.testVersion { + package = powershell; + command = "HOME=$(mktemp -d) pwsh --version"; + }; + updateScript = writeShellScript "update-powershell" '' + set -o errexit + export PATH="${lib.makeBinPath [ common-updater-scripts curl gnused jq ]}" + NEW_VERSION=$(curl -s https://api.github.com/repos/PowerShell/PowerShell/releases/latest | jq .tag_name --raw-output | sed -e 's/v//') + + if [[ "${version}" = "$NEW_VERSION" ]]; then + echo "The new version same as the old version." + exit 0 + fi + + for platform in ${lib.escapeShellArgs meta.platforms}; do + update-source-version "powershell" "0" "${lib.fakeHash}" --source-key="sources.$platform" + update-source-version "powershell" "$NEW_VERSION" --source-key="sources.$platform" + done + ''; + }; + + meta = with lib; { + description = "Powerful cross-platform (Windows, Linux, and macOS) shell and scripting language based on .NET"; + homepage = "https://microsoft.com/PowerShell"; + license = licenses.mit; + mainProgram = "pwsh"; + maintainers = with maintainers; [ wegank ]; + platforms = builtins.attrNames passthru.sources; + sourceProvenance = with sourceTypes; [ + binaryBytecode + binaryNativeCode + ]; + }; +} diff --git a/nixpkgs/pkgs/shells/rc-9front/default.nix b/nixpkgs/pkgs/shells/rc-9front/default.nix new file mode 100644 index 000000000000..a7d2f1e54e3e --- /dev/null +++ b/nixpkgs/pkgs/shells/rc-9front/default.nix @@ -0,0 +1,52 @@ +{ lib +, stdenv +, fetchFrom9Front +, unstableGitUpdater +, byacc +, installShellFiles +}: + +stdenv.mkDerivation { + pname = "rc-9front"; + version = "unstable-2022-11-01"; + + src = fetchFrom9Front { + domain = "shithub.us"; + owner = "cinap_lenrek"; + repo = "rc"; + rev = "69041639483e16392e3013491fcb382efd2b9374"; + hash = "sha256-xc+EfC4bc9ZA97jCQ6CGCzeLGf+Hx3/syl090/x4ew4="; + }; + + strictDeps = true; + nativeBuildInputs = [ byacc installShellFiles ]; + enableParallelBuilding = true; + patches = [ ./path.patch ]; + makeFlags = [ "PREFIX=$(out)" ]; + + installPhase = '' + runHook preInstall + + install -Dm755 -t $out/bin/ rc + installManPage rc.1 + mkdir -p $out/lib + install -m644 rcmain.unix $out/lib/rcmain + + runHook postInstall + ''; + + passthru = { + shellPath = "/bin/rc"; + updateScript = unstableGitUpdater { shallowClone = false; }; + }; + + meta = with lib; { + description = "The 9front shell"; + longDescription = "unix port of 9front rc"; + homepage = "http://shithub.us/cinap_lenrek/rc/HEAD/info.html"; + license = licenses.mit; + maintainers = with maintainers; [ moody ]; + mainProgram = "rc"; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/shells/rc-9front/path.patch b/nixpkgs/pkgs/shells/rc-9front/path.patch new file mode 100644 index 000000000000..7deef2cebfcd --- /dev/null +++ b/nixpkgs/pkgs/shells/rc-9front/path.patch @@ -0,0 +1,13 @@ +diff --git a/rcmain.unix b/rcmain.unix +index 7ccbe1b..691f493 100644 +--- a/rcmain.unix ++++ b/rcmain.unix +@@ -13,7 +13,7 @@ if(~ $rcname ?.out) prompt=('broken! ' ' ') + if(flag p) path=/bin + if not { + finit +- if(~ $#path 0) path=(. /bin /usr/bin /usr/local/bin) ++ if(~ $#path 0) path=`:{/usr/bin/env echo -n $PATH} + } + fn sigexit + if(! ~ $#cflag 0){ diff --git a/nixpkgs/pkgs/shells/rush/default.nix b/nixpkgs/pkgs/shells/rush/default.nix new file mode 100644 index 000000000000..6e7e256561b6 --- /dev/null +++ b/nixpkgs/pkgs/shells/rush/default.nix @@ -0,0 +1,50 @@ +{ fetchurl, lib, stdenv, bash, perl }: + +stdenv.mkDerivation rec { + pname = "rush"; + version = "2.3"; + + src = fetchurl { + url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz"; + sha256 = "sha256-57gBYfZsKdK1moXBC52KgxKv/MIeQK6tDu+fznXLZ+Y="; + }; + + strictDeps = true; + buildInputs = [ bash ]; + + postInstall = '' + substituteInPlace $out/bin/rush-po \ + --replace "exec perl" "exec ${lib.getExe perl}" + ''; + + doCheck = true; + + meta = { + broken = stdenv.isDarwin; + description = "Restricted User Shell"; + + longDescription = + '' GNU Rush is a Restricted User Shell, designed for sites + providing limited remote access to their resources, such as + svn or git repositories, scp, or the like. Using a + sophisticated configuration file, Rush gives you complete + control over the command lines that users execute, as well as + over the usage of system resources, such as virtual memory, + CPU time, etc. + + In particular, it allows remote programs to be run in a chrooted + environment, which is important with such programs as + sftp-server or scp, that lack this ability. + ''; + + homepage = "https://www.gnu.org/software/rush/"; + license = lib.licenses.gpl3Plus; + + maintainers = [ ]; + platforms = lib.platforms.all; + }; + + passthru = { + shellPath = "/bin/rush"; + }; +} diff --git a/nixpkgs/pkgs/shells/scponly/default.nix b/nixpkgs/pkgs/shells/scponly/default.nix new file mode 100644 index 000000000000..f15f04cfe227 --- /dev/null +++ b/nixpkgs/pkgs/shells/scponly/default.nix @@ -0,0 +1,40 @@ +{ stdenv, lib, fetchFromGitHub, openssh, debugLevel ? 0 }: + +stdenv.mkDerivation { + pname = "scponly"; + version = "4.8"; + + src = fetchFromGitHub { + owner = "scponly"; + repo = "scponly"; + rev = "d8ca58257b9905186aa5706f35813d5f80ea07c1"; + sha256 = "U0K7lOp18ytNjh3KVFmc6vL+/tG4ETnwLEPQEhM4lXE="; + }; + + patches = [ ./scponly-fix-make.patch ]; + + strictDeps = true; + + # chroot doesn't seem to work, so not enabling + # rsync could also be optionally enabled + configureFlags = [ + "--enable-winscp-compat" + "scponly_PROG_SFTP_SERVER=${lib.getBin openssh}/libexec/sftp-server" + "scponly_PROG_SCP=${lib.getBin openssh}/bin/scp" + ]; + + postInstall = lib.optionalString (debugLevel > 0) '' + mkdir -p $out/etc/scponly && echo ${ + toString debugLevel + } > $out/etc/scponly/debuglevel + ''; + + passthru.shellPath = "/bin/scponly"; + + meta = with lib; { + description = "A shell that only permits scp and sftp-server"; + homepage = "https://github.com/scponly/scponly"; + license = with licenses; [ bsd2 ]; + maintainers = with maintainers; [ wmertens ]; + }; +} diff --git a/nixpkgs/pkgs/shells/scponly/scponly-fix-make.patch b/nixpkgs/pkgs/shells/scponly/scponly-fix-make.patch new file mode 100644 index 000000000000..e8522ec8e6e3 --- /dev/null +++ b/nixpkgs/pkgs/shells/scponly/scponly-fix-make.patch @@ -0,0 +1,21 @@ +--- a/Makefile.in ++++ b/Makefile.in +@@ -41,14 +41,14 @@ + ${INSTALL} -d ${DESTDIR}${bindir} + ${INSTALL} -d ${DESTDIR}${mandir}/man8 + ${INSTALL} -d ${DESTDIR}${CONFDIR} +- ${INSTALL} -o 0 -g 0 scponly ${DESTDIR}${bindir}/scponly +- ${INSTALL} -o 0 -g 0 -m 0644 scponly.8 ${DESTDIR}${mandir}/man8/scponly.8 +- ${INSTALL} -o 0 -g 0 -m 0644 debuglevel ${DESTDIR}${DEBUGFILE} ++ ${INSTALL} scponly ${DESTDIR}${bindir}/scponly ++ ${INSTALL} -m 0644 scponly.8 ${DESTDIR}${mandir}/man8/scponly.8 ++ ${INSTALL} -m 0644 debuglevel ${DESTDIR}${DEBUGFILE} + if test "x${CHROOTED_NAME}" != "x"; then \ + ${INSTALL} -d ${DESTDIR}${sbindir}; \ + rm -f ${DESTDIR}${sbindir}/${CHROOTED_NAME}; \ + cp scponly ${CHROOTED_NAME}; \ +- ${INSTALL} -o 0 -g 0 -m 4755 ${CHROOTED_NAME} ${DESTDIR}${sbindir}/${CHROOTED_NAME}; \ ++ ${INSTALL} ${CHROOTED_NAME} ${DESTDIR}${sbindir}/${CHROOTED_NAME}; \ + fi + + debuglevel: diff --git a/nixpkgs/pkgs/shells/xonsh/default.nix b/nixpkgs/pkgs/shells/xonsh/default.nix new file mode 100644 index 000000000000..67896d83632d --- /dev/null +++ b/nixpkgs/pkgs/shells/xonsh/default.nix @@ -0,0 +1,88 @@ +{ lib +, fetchFromGitHub +, python3 +, glibcLocales +, coreutils +, git +}: + +python3.pkgs.buildPythonApplication rec { + pname = "xonsh"; + version = "0.14.0"; + format = "pyproject"; + + # fetch from github because the pypi package ships incomplete tests + src = fetchFromGitHub { + owner = "xonsh"; + repo = "xonsh"; + rev = "refs/tags/${version}"; + hash = "sha256-ZrPKKa/vl06QAjGr16ZzKF/DAByFHr6ze2WVOCa+wf8="; + }; + + env.LC_ALL = "en_US.UTF-8"; + + postPatch = '' + sed -ie "s|/bin/ls|${coreutils}/bin/ls|" tests/test_execer.py + sed -ie "s|SHELL=xonsh|SHELL=$out/bin/xonsh|" tests/test_integrations.py + + sed -ie 's|/usr/bin/env|${coreutils}/bin/env|' tests/test_integrations.py + sed -ie 's|/usr/bin/env|${coreutils}/bin/env|' scripts/xon.sh + find scripts -name 'xonsh*' -exec sed -i -e "s|env -S|env|" {} \; + find -name "*.xsh" | xargs sed -ie 's|/usr/bin/env|${coreutils}/bin/env|' + patchShebangs . + ''; + + nativeBuildInputs = with python3.pkgs; [ + setuptools + wheel + ]; + + disabledTests = [ + # fails on sandbox + "test_colorize_file" + "test_loading_correctly" + "test_no_command_path_completion" + "test_bsd_man_page_completions" + "test_xonsh_activator" + # fails on non-interactive shells + "test_capture_always" + "test_casting" + "test_command_pipeline_capture" + "test_dirty_working_directory" + "test_man_completion" + "test_vc_get_branch" + "test_bash_and_is_alias_is_only_functional_alias" + ]; + + disabledTestPaths = [ + # fails on sandbox + "tests/completers/test_command_completers.py" + "tests/test_ptk_highlight.py" + "tests/test_ptk_shell.py" + # fails on non-interactive shells + "tests/prompt/test_gitstatus.py" + "tests/completers/test_bash_completer.py" + ]; + + preCheck = '' + HOME=$TMPDIR + ''; + + nativeCheckInputs = [ glibcLocales git ] ++ + (with python3.pkgs; [ pip pyte pytestCheckHook pytest-mock pytest-subprocess ]); + + propagatedBuildInputs = with python3.pkgs; [ ply prompt-toolkit pygments ]; + + meta = with lib; { + description = "A Python-ish, BASHwards-compatible shell"; + homepage = "https://xon.sh/"; + changelog = "https://github.com/xonsh/xonsh/raw/${version}/CHANGELOG.rst"; + license = licenses.bsd3; + maintainers = with maintainers; [ vrthra ]; + }; + + passthru = { + shellPath = "/bin/xonsh"; + python = python3; + }; +} diff --git a/nixpkgs/pkgs/shells/xonsh/wrapper.nix b/nixpkgs/pkgs/shells/xonsh/wrapper.nix new file mode 100644 index 000000000000..7868404ca5fb --- /dev/null +++ b/nixpkgs/pkgs/shells/xonsh/wrapper.nix @@ -0,0 +1,24 @@ +{ runCommand +, xonsh-unwrapped +, lib +, extraPackages ? (ps: [ ]) +}: + +let + xonsh = xonsh-unwrapped; + inherit (xonsh.passthru) python; + + pythonEnv = python.withPackages (ps: [ + (ps.toPythonModule xonsh) + ] ++ extraPackages ps); + +in +runCommand "${xonsh.pname}-${xonsh.version}" +{ + inherit (xonsh) pname version meta passthru; +} '' + mkdir -p $out/bin + for bin in ${lib.getBin xonsh}/bin/*; do + ln -s ${pythonEnv}/bin/$(basename "$bin") $out/bin/ + done +'' diff --git a/nixpkgs/pkgs/shells/yash/default.nix b/nixpkgs/pkgs/shells/yash/default.nix new file mode 100644 index 000000000000..4957c657b86d --- /dev/null +++ b/nixpkgs/pkgs/shells/yash/default.nix @@ -0,0 +1,27 @@ +{ stdenv, lib, fetchFromGitHub, gettext, ncurses, asciidoc }: + +stdenv.mkDerivation rec { + pname = "yash"; + version = "2.55"; + + src = fetchFromGitHub { + owner = "magicant"; + repo = pname; + rev = version; + hash = "sha256-raTIqklo69JEuhzdWUK3uywuLjqeQJCJ9nvnLRxlGr4="; + }; + + strictDeps = true; + nativeBuildInputs = [ asciidoc gettext ]; + buildInputs = [ ncurses ] ++ lib.optionals stdenv.isDarwin [ gettext ]; + + meta = with lib; { + homepage = "https://yash.osdn.jp/index.html.en"; + description = "Yet another POSIX-compliant shell"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ qbit ]; + platforms = platforms.all; + }; + + passthru.shellPath = "/bin/yash"; +} diff --git a/nixpkgs/pkgs/shells/zsh/agdsn-zsh-config/default.nix b/nixpkgs/pkgs/shells/zsh/agdsn-zsh-config/default.nix new file mode 100644 index 000000000000..6efbb285f29f --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/agdsn-zsh-config/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenvNoCC, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "agdsn-zsh-config"; + version = "0.8.0"; + + src = fetchFromGitHub { + owner = "agdsn"; + repo = "agdsn-zsh-config"; + rev = "v${version}"; + sha256 = "sha256-kbpiA+aI3mXQAanmTyZo2rJNOKX77FKjpVsQywyyq90="; + }; + + dontBuild = true; + + installPhase = '' + runHook preInstall + + install -D -m644 zshrc-base-hw.zsh "$out/etc/zsh/zshrc" + install -D -m644 zshrc-home.zsh "$out/etc/skel/.zshrc" + install -D -m644 zshrc-home.zsh "$out/etc/zsh/newuser.zshrc.recommended" + install -D -m644 profile-d-agdsn-zsh-config.sh "$out/etc/profile.d/agdsn-zsh-config.sh" + + runHook postInstall + ''; + + meta = with lib; { + description = "A modified version of the Grml Zsh configuration specialised for the needs of system administration"; + homepage = "https://github.com/agdsn/agdsn-zsh-config"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ fugi ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix b/nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix new file mode 100644 index 000000000000..fa4d9f4cf477 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix @@ -0,0 +1,32 @@ +{ stdenvNoCC, lib, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "agkozak-zsh-prompt"; + version = "3.11.2"; + + src = fetchFromGitHub { + owner = "agkozak"; + repo = "agkozak-zsh-prompt"; + rev = "v${version}"; + sha256 = "sha256-QDUI9EYflITttkX9Khij62ybBMYJwPfayqj+wr495mM="; + }; + + strictDeps = true; + dontConfigure = true; + dontBuild = true; + + installPhase = '' + plugindir="$out/share/zsh/site-functions" + + mkdir -p "$plugindir" + cp -r -- lib/*.zsh agkozak-zsh-prompt.plugin.zsh prompt_agkozak-zsh-prompt_setup "$plugindir"/ + ''; + + meta = with lib; { + description = "A fast, asynchronous Zsh prompt"; + homepage = "https://github.com/agkozak/agkozak-zsh-prompt"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ ambroisie ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/antibody/default.nix b/nixpkgs/pkgs/shells/zsh/antibody/default.nix new file mode 100644 index 000000000000..8df75ac15b95 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/antibody/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "antibody"; + version = "6.1.1"; + + src = fetchFromGitHub { + owner = "getantibody"; + repo = "antibody"; + rev = "v${version}"; + hash = "sha256-If7XAwtg1WqkDkrJ6qYED+DjwHWloPu3P7X9rUd5ikU="; + }; + + vendorHash = "sha256-0m+yDo+AMX5tZfOsjsZgulyjB9mVEjy2RfA2sYeqDn0="; + + doCheck = false; + + ldflags = [ "-s" "-w" "-X main.version=${version}" ]; + + meta = with lib; { + description = "The fastest shell plugin manager"; + homepage = "https://github.com/getantibody/antibody"; + license = licenses.mit; + maintainers = with maintainers; [ Br1ght0ne ]; + + # golang.org/x/sys needs to be updated due to: + # + # https://github.com/golang/go/issues/49219 + # + # but this package is no longer maintained. + # + broken = stdenv.isDarwin; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/antidote/default.nix b/nixpkgs/pkgs/shells/zsh/antidote/default.nix new file mode 100644 index 000000000000..3506f0853f5f --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/antidote/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation (finalAttrs: { + version = "1.9.2"; + pname = "antidote"; + + src = fetchFromGitHub { + owner = "mattmc3"; + repo = "antidote"; + rev = "v${finalAttrs.version}"; + hash = "sha256-h+Gay1InnOY6tc8Iir5QzCC7FQj9cVWSn5YViEAHraU="; + }; + + dontPatch = true; + dontBuild = true; + dontConfigure = true; + dontFixup = true; + + installPhase = '' + runHook preInstall + install -D antidote --target-directory=$out/share/antidote + install -D antidote.zsh --target-directory=$out/share/antidote + install -D functions/* --target-directory=$out/share/antidote/functions + runHook postInstall + ''; + + meta = { + description = "A zsh plugin manager made from the ground up thinking about performance"; + homepage = "https://getantidote.github.io/"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.hitsmaxft ]; + }; +}) diff --git a/nixpkgs/pkgs/shells/zsh/antigen/default.nix b/nixpkgs/pkgs/shells/zsh/antigen/default.nix new file mode 100644 index 000000000000..ca5fbee6e368 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/antigen/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + version = "2.2.3"; + pname = "antigen"; + + src = fetchurl { + url = "https://github.com/zsh-users/antigen/releases/download/v${version}/antigen.zsh"; + sha256 = "1bmp3qf14509swpxin4j9f98n05pdilzapjm0jdzbv0dy3hn20ix"; + }; + + strictDeps = true; + dontUnpack = true; + + installPhase = '' + outdir=$out/share/antigen + mkdir -p $outdir + cp $src $outdir/antigen.zsh + ''; + + meta = { + description = "The plugin manager for zsh"; + homepage = "https://antigen.sharats.me/"; + license = lib.licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/default.nix b/nixpkgs/pkgs/shells/zsh/default.nix new file mode 100644 index 000000000000..5af94223ec83 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/default.nix @@ -0,0 +1,152 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, autoreconfHook +, yodl +, perl +, groff +, util-linux +, texinfo +, ncurses +, pcre +, pkg-config +, buildPackages +, nixosTests +}: + +let + version = "5.9"; +in + +stdenv.mkDerivation { + pname = "zsh"; + inherit version; + outputs = [ "out" "doc" "info" "man" ]; + + src = fetchurl { + url = "mirror://sourceforge/zsh/zsh-${version}.tar.xz"; + sha256 = "sha256-m40ezt1bXoH78ZGOh2dSp92UjgXBoNuhCrhjhC1FrNU="; + }; + + patches = [ + # fix location of timezone data for TZ= completion + ./tz_completion.patch + # Fixes configure misdetection when using clang 16, resulting in broken subshells on Darwin. + # This patch can be dropped with the next release of zsh. + (fetchpatch { + url = "https://github.com/zsh-users/zsh/commit/ab4d62eb975a4c4c51dd35822665050e2ddc6918.patch"; + hash = "sha256-nXB4w7qqjZJC7/+CDxnNy6wu9qNwmS3ezjj/xK7JfeU="; + excludes = [ "ChangeLog" ]; + }) + ]; + + strictDeps = true; + nativeBuildInputs = [ autoreconfHook perl groff texinfo pkg-config ] + ++ lib.optionals stdenv.isLinux [ util-linux yodl ]; + + buildInputs = [ ncurses pcre ]; + + configureFlags = [ + "--enable-maildir-support" + "--enable-multibyte" + "--with-tcsetpgrp" + "--enable-pcre" + "--enable-zshenv=${placeholder "out"}/etc/zshenv" + "--disable-site-fndir" + "--enable-function-subdirs" + ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform && !stdenv.hostPlatform.isStatic) [ + # Also see: https://github.com/buildroot/buildroot/commit/2f32e668aa880c2d4a2cce6c789b7ca7ed6221ba + "zsh_cv_shared_environ=yes" + "zsh_cv_shared_tgetent=yes" + "zsh_cv_shared_tigetstr=yes" + "zsh_cv_sys_dynamic_clash_ok=yes" + "zsh_cv_sys_dynamic_rtld_global=yes" + "zsh_cv_sys_dynamic_execsyms=yes" + "zsh_cv_sys_dynamic_strip_exe=yes" + "zsh_cv_sys_dynamic_strip_lib=yes" + ]; + + postPatch = '' + substituteInPlace Src/Modules/pcre.mdd \ + --replace 'pcre-config' 'true' + ''; + + preConfigure = '' + # use pkg-config instead of pcre-config + configureFlagsArray+=("PCRECONF=''${PKG_CONFIG} libpcre") + ''; + + # the zsh/zpty module is not available on hydra + # so skip groups Y Z + checkFlags = map (T: "TESTNUM=${T}") (lib.stringToCharacters "ABCDEVW"); + + # XXX: think/discuss about this, also with respect to nixos vs nix-on-X + postInstall = '' + make install.info install.html + mkdir -p $out/etc/ + cat > $out/etc/zshenv <<EOF +if test -e /etc/NIXOS; then + if test -r /etc/zshenv; then + . /etc/zshenv + else + emulate bash + alias shopt=false + if [ -z "\$__NIXOS_SET_ENVIRONMENT_DONE" ]; then + . /etc/set-environment + fi + unalias shopt + emulate zsh + fi + if test -r /etc/zshenv.local; then + . /etc/zshenv.local + fi +else + # on non-nixos we just source the global /etc/zshenv as if we did + # not use the configure flag + if test -r /etc/zshenv; then + . /etc/zshenv + fi +fi +EOF + ${if stdenv.hostPlatform == stdenv.buildPlatform then '' + $out/bin/zsh -c "zcompile $out/etc/zshenv" + '' else '' + ${lib.getBin buildPackages.zsh}/bin/zsh -c "zcompile $out/etc/zshenv" + ''} + mv $out/etc/zshenv $out/etc/zshenv_zwc_is_used + + rm $out/bin/zsh-${version} + mkdir -p $out/share/doc/ + mv $out/share/zsh/htmldoc $out/share/doc/zsh-$version + ''; + # XXX: patch zsh to take zwc if newer _or equal_ + + postFixup = '' + HOST_PATH=$out/bin:$HOST_PATH patchShebangs --host $out/share/zsh/*/functions + ''; + + meta = { + description = "The Z shell"; + longDescription = '' + Zsh is a UNIX command interpreter (shell) usable as an interactive login + shell and as a shell script command processor. Of the standard shells, + zsh most closely resembles ksh but includes many enhancements. Zsh has + command line editing, builtin spelling correction, programmable command + completion, shell functions (with autoloading), a history mechanism, and + a host of other features. + ''; + license = "MIT-like"; + homepage = "https://www.zsh.org/"; + maintainers = with lib.maintainers; [ pSub artturin ]; + platforms = lib.platforms.unix; + mainProgram = "zsh"; + }; + + passthru = { + shellPath = "/bin/zsh"; + tests = { + inherit (nixosTests) zsh-history oh-my-zsh; + }; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/fzf-zsh/default.nix b/nixpkgs/pkgs/shells/zsh/fzf-zsh/default.nix new file mode 100644 index 000000000000..40c4edaff86e --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/fzf-zsh/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, fzf }: + +stdenv.mkDerivation rec { + pname = "fzf-zsh-unstable"; + version = "2019-09-09"; + + src = fetchFromGitHub { + owner = "Wyntau"; + repo = "fzf-zsh"; + rev = "829d7e40cc437dce8a6e234e259bbd4065e87124"; + sha256 = "1irjmxhcg1fm4g8p3psjqk7sz5qhj5kw73pyhv91njvpdhn9l26z"; + }; + + strictDeps = true; + postPatch = '' + substituteInPlace fzf-zsh.plugin.zsh \ + --replace \ + 'fzf_path="$( cd "$fzf_zsh_path/../fzf/" && pwd )"' \ + "fzf_path=${fzf}" \ + --replace \ + '$fzf_path/shell' \ + '${fzf}/share/fzf' + ''; + + dontBuild = true; + + installPhase = '' + install -Dm0644 fzf-zsh.plugin.zsh $out/share/zsh/plugins/fzf-zsh/fzf-zsh.plugin.zsh + ''; + + meta = with lib; { + homepage = "https://github.com/wyntau/fzf-zsh"; + description = "wrap fzf to use in oh-my-zsh"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/gradle-completion/default.nix b/nixpkgs/pkgs/shells/zsh/gradle-completion/default.nix new file mode 100644 index 000000000000..fa40db3603b9 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/gradle-completion/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "gradle-completion"; + version = "1.4.1"; + + src = fetchFromGitHub { + owner = "gradle"; + repo = "gradle-completion"; + rev = "v${version}"; + sha256 = "15b0692i3h8h7b95465b2aw9qf5qjmjag5n62347l8yl7zbhv3l2"; + }; + + strictDeps = true; + + # we just move two files into $out, + # this shouldn't bother Hydra. + preferLocalBuild = true; + + dontBuild = true; + installPhase = '' + runHook preInstall + + mkdir -p $out + install -Dm0644 ./_gradle $out/share/zsh/site-functions/_gradle + install -Dm0644 ./gradle-completion.bash $out/share/bash-completion/completions/gradle + + runHook postInstall + ''; + + meta = with lib; { + description = "Gradle tab completion for bash and zsh"; + homepage = "https://github.com/gradle/gradle-completion"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix b/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix new file mode 100644 index 000000000000..b7c581e08f5e --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, lib, txt2tags }: + +stdenv.mkDerivation rec { + pname = "grml-zsh-config"; + version = "0.19.6"; + + src = fetchFromGitHub { + owner = "grml"; + repo = "grml-etc-core"; + rev = "v${version}"; + sha256 = "sha256-31BD5jUA54oLSsL4NzGaGAiOXMcZwy7uX65pD+jtE4M="; + }; + + strictDeps = true; + nativeBuildInputs = [ txt2tags ]; + + buildPhase = '' + cd doc + make + cd .. + ''; + + installPhase = '' + install -D -m644 etc/zsh/keephack $out/etc/zsh/keephack + install -D -m644 etc/zsh/zshrc $out/etc/zsh/zshrc + + install -D -m644 doc/grmlzshrc.5 $out/share/man/man5/grmlzshrc.5 + ln -s grmlzshrc.5.gz $out/share/man/man5/grml-zsh-config.5.gz + ''; + + meta = with lib; { + description = "grml's zsh setup"; + homepage = "https://grml.org/zsh/"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ msteen rvolosatovs ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix b/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix new file mode 100644 index 000000000000..f64f96a60aa7 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation { + pname = "lambda-mod-zsh-theme-unstable"; + version = "2020-10-03"; + + src = fetchFromGitHub { + owner = "halfo"; + repo = "lambda-mod-zsh-theme"; + rev = "78347ea9709935f265e558b6345919d12323fbff"; + sha256 = "0fvxnvgbcvwii7ghvpj5l43frllq71wwjvfg7cqfmic727z001dh"; + }; + + strictDeps = true; + installPhase = '' + install -Dm0644 lambda-mod.zsh-theme $out/share/zsh/themes/lambda-mod.zsh-theme + ''; + + meta = with lib; { + description = "A ZSH theme optimized for people who use Git & Unicode-compatible fonts and terminals"; + homepage = "https://github.com/halfo/lambda-mod-zsh-theme/"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix b/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix new file mode 100644 index 000000000000..32565af35be9 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "nix-zsh-completions"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "nix-community"; + repo = "nix-zsh-completions"; + rev = "refs/tags/${version}"; + hash = "sha256-DKvCpjAeCiUwD5l6PUW7WlEvM0cNZEOk41IiVXoh9D8="; + }; + + strictDeps = true; + installPhase = '' + mkdir -p $out/share/zsh/{site-functions,plugins/nix} + cp _* $out/share/zsh/site-functions + cp *.zsh $out/share/zsh/plugins/nix + ''; + + meta = with lib; { + homepage = "https://github.com/nix-community/nix-zsh-completions"; + description = "ZSH completions for Nix, NixOS, and NixOps"; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = with maintainers; [ olejorgenb hedning ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix new file mode 100644 index 000000000000..be67c6e14e35 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix @@ -0,0 +1,126 @@ +# This script was inspired by the ArchLinux User Repository package: +# +# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=oh-my-zsh-git +{ lib, stdenv, fetchFromGitHub, nixosTests, writeScript, common-updater-scripts +, git, nix, nixfmt, jq, coreutils, gnused, curl, cacert, bash }: + +stdenv.mkDerivation rec { + version = "2023-06-26"; + pname = "oh-my-zsh"; + + src = fetchFromGitHub { + owner = "ohmyzsh"; + repo = "ohmyzsh"; + rev = "8cbe98469d9862d37d43ca4229dc8e915ec377a9"; + sha256 = "sha256-/bFD1z/icQe4OfVcudMjIbkCh7MU6pEZiKBOYOFiCXs="; + }; + + strictDeps = true; + buildInputs = [ bash ]; + + installPhase = '' + runHook preInstall + + outdir=$out/share/oh-my-zsh + template=templates/zshrc.zsh-template + + mkdir -p $outdir + cp -r * $outdir + cd $outdir + + rm LICENSE.txt + rm -rf .git* + + chmod -R +w templates + + # Change the path to oh-my-zsh dir and disable auto-updating. + sed -i -e "s#ZSH=\$HOME/.oh-my-zsh#ZSH=$outdir#" \ + -e 's/\# \(DISABLE_AUTO_UPDATE="true"\)/\1/' \ + $template + + chmod +w oh-my-zsh.sh + + # Both functions expect oh-my-zsh to be in ~/.oh-my-zsh and try to + # modify the directory. + cat >> oh-my-zsh.sh <<- EOF + + # Undefine functions that don't work on Nix. + unfunction uninstall_oh_my_zsh + unfunction upgrade_oh_my_zsh + EOF + + # Look for .zsh_variables, .zsh_aliases, and .zsh_funcs, and source + # them, if found. + cat >> $template <<- EOF + + # Load the variables. + if [ -f ~/.zsh_variables ]; then + . ~/.zsh_variables + fi + + # Load the functions. + if [ -f ~/.zsh_funcs ]; then + . ~/.zsh_funcs + fi + + # Load the aliases. + if [ -f ~/.zsh_aliases ]; then + . ~/.zsh_aliases + fi + EOF + + runHook postInstall + ''; + + passthru = { + tests = { inherit (nixosTests) oh-my-zsh; }; + + updateScript = writeScript "update.sh" '' + #!${stdenv.shell} + set -o errexit + PATH=${ + lib.makeBinPath [ + common-updater-scripts + curl + cacert + git + nixfmt + nix + jq + coreutils + gnused + ] + } + + oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion oh-my-zsh" | tr -d '"')" + latestSha="$(curl -L -s https://api.github.com/repos/ohmyzsh/ohmyzsh/commits\?sha\=master\&since\=$oldVersion | jq -r '.[0].sha')" + + if [ ! "null" = "$latestSha" ]; then + nixpkgs="$(git rev-parse --show-toplevel)" + default_nix="$nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix" + latestDate="$(curl -L -s https://api.github.com/repos/ohmyzsh/ohmyzsh/commits/$latestSha | jq '.commit.committer.date' | sed 's|"\(.*\)T.*|\1|g')" + update-source-version oh-my-zsh "$latestSha" --version-key=rev + update-source-version oh-my-zsh "$latestDate" --ignore-same-hash + nixfmt "$default_nix" + else + echo "${pname} is already up-to-date" + fi + ''; + }; + + meta = with lib; { + description = "A framework for managing your zsh configuration"; + longDescription = '' + Oh My Zsh is a framework for managing your zsh configuration. + + To copy the Oh My Zsh configuration file to your home directory, run + the following command: + + $ cp -v $(nix-env -q --out-path oh-my-zsh | cut -d' ' -f3)/share/oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc + ''; + homepage = "https://ohmyz.sh/"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ nequissimus ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix b/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix new file mode 100644 index 000000000000..6fbda66d4cc2 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub }: + +with lib; + +stdenv.mkDerivation rec { + pname = "pure-prompt"; + version = "1.22.0"; + + src = fetchFromGitHub { + owner = "sindresorhus"; + repo = "pure"; + rev = "v${version}"; + sha256 = "sha256-TR4CyBZ+KoZRs9XDmWE5lJuUXXU1J8E2Z63nt+FS+5w="; + }; + + strictDeps = true; + installPhase = '' + OUTDIR="$out/share/zsh/site-functions" + mkdir -p "$OUTDIR" + cp pure.zsh "$OUTDIR/prompt_pure_setup" + cp async.zsh "$OUTDIR/async" + ''; + + meta = { + description = "Pretty, minimal and fast ZSH prompt"; + homepage = "https://github.com/sindresorhus/pure"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ pacien pablovsky ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix b/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix new file mode 100644 index 000000000000..b7c7284e9f43 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenvNoCC, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "spaceship-prompt"; + version = "4.14.1"; + + src = fetchFromGitHub { + owner = "denysdovhan"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-dl8Ao9Sg+wbFpp6LfWD6isEKou75UzfJkTjZrue4A0A="; + }; + + strictDeps = true; + dontBuild = true; + + installPhase = '' + install -Dm644 LICENSE.md "$out/share/licenses/spaceship-prompt/LICENSE" + install -Dm644 README.md "$out/share/doc/spaceship-prompt/README.md" + find docs -type f -exec install -Dm644 {} "$out/share/doc/spaceship-prompt/{}" \; + find lib -type f -exec install -Dm644 {} "$out/lib/spaceship-prompt/{}" \; + find scripts -type f -exec install -Dm644 {} "$out/lib/spaceship-prompt/{}" \; + find sections -type f -exec install -Dm644 {} "$out/lib/spaceship-prompt/{}" \; + install -Dm644 spaceship.zsh "$out/lib/spaceship-prompt/spaceship.zsh" + install -Dm644 async.zsh "$out/lib/spaceship-prompt/async.zsh" + install -d "$out/share/zsh/themes/" + ln -s "$out/lib/spaceship-prompt/spaceship.zsh" "$out/share/zsh/themes/spaceship.zsh-theme" + install -d "$out/share/zsh/site-functions/" + ln -s "$out/lib/spaceship-prompt/spaceship.zsh" "$out/share/zsh/site-functions/prompt_spaceship_setup" + ''; + + meta = with lib; { + description = "Zsh prompt for Astronauts"; + homepage = "https://github.com/denysdovhan/spaceship-prompt/"; + changelog = "https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v${version}"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ nyanloutre fortuneteller2k kyleondy ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/tz_completion.patch b/nixpkgs/pkgs/shells/zsh/tz_completion.patch new file mode 100644 index 000000000000..01977828129d --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/tz_completion.patch @@ -0,0 +1,14 @@ +On NixOS, timezone data is located at /etc/zoneinfo +diff --git a/Completion/Unix/Type/_time_zone b/Completion/Unix/Type/_time_zone +index cd924bbc7..5d683291b 100644 +--- a/Completion/Unix/Type/_time_zone ++++ b/Completion/Unix/Type/_time_zone +@@ -3,7 +3,7 @@ + local expl + + if (( ! $+_zoneinfo_dirs )); then +- _zoneinfo_dirs=( /usr/{share,lib,share/lib}/{zoneinfo*,locale/TZ}(/) ) ++ _zoneinfo_dirs=( /etc/zoneinfo /usr/{share,lib,share/lib}/{zoneinfo*,locale/TZ}(/) ) + fi + + _wanted time-zones expl 'time zone' _files -W _zoneinfo_dirs "$@" - diff --git a/nixpkgs/pkgs/shells/zsh/zi/default.nix b/nixpkgs/pkgs/shells/zsh/zi/default.nix new file mode 100644 index 000000000000..b1adbe8d6616 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zi/default.nix @@ -0,0 +1,30 @@ +{ lib, fetchFromGitHub, installShellFiles, stdenvNoCC }: + +stdenvNoCC.mkDerivation rec { + pname = "zi"; + version = "unstable-2022-04-09"; + src = fetchFromGitHub { + owner = "z-shell"; + repo = pname; + rev = "4ca4d3276ca816c3d37a31e47d754f9a732c40b9"; + sha256 = "sha256-KcDFT0is5Ef/zRo6zVfxYfBMOb5oVaVFT4EsUrfiMko="; + }; + + dontBuild = true; + + nativeBuildInputs = [ installShellFiles ]; + + installPhase = '' + mkdir -p $out + cp -r lib zi.zsh $out + installManPage docs/man/zi.1 + installShellCompletion --zsh lib/_zi + ''; + + meta = with lib; { + homepage = "https://github.com/z-shell/zi"; + description = "A Swiss Army Knife for Zsh - Unix Shell"; + license = licenses.mit; + maintainers = with maintainers; [ sei40kr ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zimfw/default.nix b/nixpkgs/pkgs/shells/zsh/zimfw/default.nix new file mode 100644 index 000000000000..af452968fa63 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zimfw/default.nix @@ -0,0 +1,46 @@ +{ stdenv, lib, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zimfw"; + version = "1.12.1"; + src = fetchFromGitHub { + owner = "zimfw"; + repo = "zimfw"; + rev = "v${version}"; + ## zim only needs this one file to be installed. + sparseCheckout = [ "zimfw.zsh" ]; + sha256 = "sha256-BoUNUdhRUWNi2ttxgWJxbjHw64K9k0rNjRi2L4V+gLk="; + }; + strictDeps = true; + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -r $src/zimfw.zsh $out/ + + runHook postInstall + ''; + + ## zim automates the downloading of any plugins you specify in the `.zimrc` + ## file. To do that with Nix, you'll need $ZIM_HOME to be writable. + ## `~/.cache/zim` is a good place for that. The problem is that zim also + ## looks for `zimfw.zsh` there, so we're going to tell it here to look for + ## the `zimfw.zsh` where we currently are. + postFixup = '' + substituteInPlace $out/zimfw.zsh \ + --replace "\''${ZIM_HOME}/zimfw.zsh" "$out/zimfw.zsh" \ + --replace "\''${(q-)ZIM_HOME}/zimfw.zsh" "$out/zimfw.zsh" + ''; + + meta = with lib; { + description = + "The Zsh configuration framework with blazing speed and modular extensions"; + homepage = "https://zimfw.sh"; + license = licenses.mit; + maintainers = [ maintainers.joedevivo ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zinit/default.nix b/nixpkgs/pkgs/shells/zsh/zinit/default.nix new file mode 100644 index 000000000000..6b949b90fda2 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zinit/default.nix @@ -0,0 +1,43 @@ +{ stdenvNoCC, lib, fetchFromGitHub, installShellFiles }: + +stdenvNoCC.mkDerivation rec { + pname = "zinit"; + version = "3.12.0"; + src = fetchFromGitHub { + owner = "zdharma-continuum"; + repo = pname; + rev = "v${version}"; + hash = "sha256-AiYK1pRFD4CGvBcQg9QwgFjc5Z564TVlWW0MzxoxdWU="; + }; + # adapted from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=zsh-zplugin-git + dontBuild = true; + strictDeps = true; + nativeBuildInputs = [ installShellFiles ]; + installPhase = '' + outdir="$out/share/$pname" + + cd "$src" + + # Zplugin's source files + install -dm0755 "$outdir" + # Installing backward compatibility layer + install -m0644 zinit{,-side,-install,-autoload}.zsh "$outdir" + install -m0755 share/git-process-output.zsh "$outdir" + + # Zplugin autocompletion + installShellCompletion --zsh _zinit + + #TODO:Zplugin-module files + # find zmodules/ -type d -exec install -dm 755 "{}" "$outdir/{}" \; + # find zmodules/ -type f -exec install -m 744 "{}" "$outdir/{}" \; + + ''; + #TODO:doc output + + meta = with lib; { + homepage = "https://github.com/zdharma-continuum/zinit"; + description = "Flexible zsh plugin manager"; + license = licenses.mit; + maintainers = with maintainers; [ pasqui23 sei40kr ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zplug/default.nix b/nixpkgs/pkgs/shells/zsh/zplug/default.nix new file mode 100644 index 000000000000..7fdc682387d7 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zplug/default.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zplug"; + version = "2.4.2"; + + src = fetchFromGitHub { + owner = "zplug"; + repo = pname; + rev = version; + sha256 = "0hci1pbs3k5icwfyfw5pzcgigbh9vavprxxvakg1xm19n8zb61b3"; + }; + + strictDeps = true; + dontConfigure = true; + dontBuild = true; + dontPatch = true; + + installPhase = '' + mkdir -p $out/share/zplug + cp -r $src/{autoload,base,bin,init.zsh,misc} $out/share/zplug/ + mkdir -p $out/share/man + cp -r $src/doc/man/* $out/share/man/ + ''; + + meta = with lib; { + description = "A next-generation plugin manager for zsh"; + homepage = "https://github.com/zplug/zplug"; + license = licenses.mit; + maintainers = [ maintainers.s1341 ]; + mainProgram = "zplug-env"; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-abbr/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-abbr/default.nix new file mode 100644 index 000000000000..27b9e02dc93e --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-abbr/default.nix @@ -0,0 +1,30 @@ +{ + stdenv, + lib, + fetchFromGitHub, +}: +stdenv.mkDerivation rec { + pname = "zsh-abbr"; + version = "5.2.0"; + + src = fetchFromGitHub { + owner = "olets"; + repo = "zsh-abbr"; + rev = "v${version}"; + hash = "sha256-MvxJkEbJKMmYRku/RF6ayOb7u7NI4HZehO8ty64jEnE="; + }; + + strictDeps = true; + + installPhase = '' + install -D zsh-abbr.zsh $out/share/zsh/${pname}/abbr.plugin.zsh + ''; + + meta = with lib; { + homepage = "https://github.com/olets/zsh-abbr"; + description = "The zsh manager for auto-expanding abbreviations, inspired by fish shell"; + license = with licenses; [cc-by-nc-nd-40 hl3]; + maintainers = with maintainers; [icy-thought]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-autocomplete/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-autocomplete/default.nix new file mode 100644 index 000000000000..05721221f2ab --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-autocomplete/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenvNoCC, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "zsh-autocomplete"; + version = "23.05.24"; + + src = fetchFromGitHub { + owner = "marlonrichert"; + repo = "zsh-autocomplete"; + rev = version; + sha256 = "sha256-/6V6IHwB5p0GT1u5SAiUa20LjFDSrMo731jFBq/bnpw="; + }; + + strictDeps = true; + installPhase = '' + install -D zsh-autocomplete.plugin.zsh $out/share/zsh-autocomplete/zsh-autocomplete.plugin.zsh + cp -R scripts $out/share/zsh-autocomplete/scripts + cp -R functions $out/share/zsh-autocomplete/functions + ''; + + meta = with lib; { + description = "Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion"; + homepage = "https://github.com/marlonrichert/zsh-autocomplete/"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = [ maintainers.leona ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-autopair/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-autopair/default.nix new file mode 100644 index 000000000000..73b70c00405a --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-autopair/default.nix @@ -0,0 +1,27 @@ +{ stdenv, lib, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zsh-autopair"; + version = "1.0"; + + src = fetchFromGitHub { + owner = "hlissner"; + repo = "zsh-autopair"; + rev = "v${version}"; + sha256 = "1h0vm2dgrmb8i2pvsgis3lshc5b0ad846836m62y8h3rdb3zmpy1"; + }; + + strictDeps = true; + + installPhase = '' + install -D autopair.zsh $out/share/zsh/${pname}/autopair.zsh + ''; + + meta = with lib; { + homepage = "https://github.com/hlissner/zsh-autopair"; + description = "A plugin that auto-closes, deletes and skips over matching delimiters in zsh intelligently"; + license = licenses.mit; + maintainers = with maintainers; [ _0qq ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix new file mode 100644 index 000000000000..6445b0d31e73 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-autosuggestions/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, zsh }: + +# To make use of this derivation, use the `programs.zsh.autosuggestions.enable` option + +stdenv.mkDerivation rec { + pname = "zsh-autosuggestions"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "zsh-users"; + repo = "zsh-autosuggestions"; + rev = "v${version}"; + sha256 = "1g3pij5qn2j7v7jjac2a63lxd97mcsgw6xq6k5p7835q9fjiid98"; + }; + + strictDeps = true; + nativeBuildInputs = [ zsh ]; + + installPhase = '' + install -D zsh-autosuggestions.zsh \ + $out/share/zsh-autosuggestions/zsh-autosuggestions.zsh + ''; + + meta = with lib; { + description = "Fish shell autosuggestions for Zsh"; + homepage = "https://github.com/zsh-users/zsh-autosuggestions"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = [ maintainers.loskutov ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix new file mode 100644 index 000000000000..ebfa55ecd229 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-bd/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub}: + +stdenv.mkDerivation rec { + pname = "zsh-bd"; + version = "2018-07-04"; + + src = fetchFromGitHub { + owner = "Tarrasch"; + repo = pname; + rev = "d4a55e661b4c9ef6ae4568c6abeff48bdf1b1af7"; + sha256 = "020f8nq86g96cps64hwrskppbh2dapfw2m9np1qbs5pgh16z4fcb"; + }; + + strictDeps = true; + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/zsh-bd + cp {.,$out/share/zsh-bd}/bd.zsh + cd $out/share/zsh-bd + ln -s bd{,.plugin}.zsh + ''; + + meta = { + description = "Jump back to a specific directory, without doing `cd ../../..` "; + homepage = "https://github.com/Tarrasch/zsh-bd"; + license = lib.licenses.free; + + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.olejorgenb ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-better-npm-completion/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-better-npm-completion/default.nix new file mode 100644 index 000000000000..d9a813bbbfdd --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-better-npm-completion/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zsh-better-npm-completion"; + version = "unstable-2019-11-19"; + + src = fetchFromGitHub { + owner = "lukechilds"; + repo = "zsh-better-npm-completion"; + rev = "0a7cf042415324ec38a186fdcbc9af163f0d7e69"; + sha256 = "16z7k5n1rcl9i61lrm7i5dsqsmhvdp1y4y5ii6hv2xpp470addgy"; + }; + + strictDeps = true; + installPhase = '' + install -Dm 0644 zsh-better-npm-completion.plugin.zsh $out/share/zsh-better-npm-completion + ''; + + meta = with lib; { + description = "Better completion for npm"; + homepage = "https://github.com/lukechilds/zsh-better-npm-completion"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = [ maintainers.gerschtli ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh b/nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh new file mode 100644 index 000000000000..f1f190ec70c3 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh @@ -0,0 +1,40 @@ +_cb-yank() { + AA=$(clippaste 2>/dev/null) && CUTBUFFER="$AA" + zle yank +} +_cb-kill-line() { + zle kill-line + printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null +} +_cb-kill-whole-line() { + zle kill-whole-line + printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null +} +_cb-kill-word() { + zle kill-word + printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null +} +_cb-backward-kill-word() { + zle backward-kill-word + printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null +} +_cb-copy-region-as-kill() { + ## https://unix.stackexchange.com/questions/19947/ + zle copy-region-as-kill + zle set-mark-command -n -1 + printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null +} + +zle -N _cb-yank +zle -N _cb-kill-line +zle -N _cb-kill-whole-line +zle -N _cb-kill-word +zle -N _cb-backward-kill-word +zle -N _cb-copy-region-as-kill + +bindkey '^y' _cb-yank +bindkey '^k' _cb-kill-line +bindkey '^u' _cb-kill-whole-line +bindkey '\ed' _cb-kill-word +bindkey '\e^?' _cb-backward-kill-word +bindkey '\ew' _cb-copy-region-as-kill diff --git a/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix new file mode 100644 index 000000000000..312731e7cb16 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix @@ -0,0 +1,27 @@ +{ stdenv, lib }: + +stdenv.mkDerivation rec { + pname = "zsh-clipboard"; + version = "1.0"; + + dontUnpack = true; + strictDeps = true; + dontBuild = true; + + installPhase = '' + install -D -m0444 -T ${./clipboard.plugin.zsh} $out/share/zsh/plugins/clipboard/clipboard.plugin.zsh + ''; + + meta = with lib; { + description = "Ohmyzsh plugin that integrates kill-ring with system clipboard"; + longDescription = '' + Ohmyzsh plugin that integrates kill-ring with system clipboard. + + Key bindings for C-y, C-k, C-u, M-d, M-backspace and M-w are rebound. + Behaviour of these keys should not be changed. + ''; + license = licenses.mit; + maintainers = with maintainers; [ bb2020 ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-command-time/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-command-time/default.nix new file mode 100644 index 000000000000..c10b67c2b3de --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-command-time/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub }: + +# To make use of this plugin, need to add +# programs.zsh.interactiveShellInit = '' +# source ${pkgs.zsh-command-time}/share/zsh/plugins/command-time/command-time.plugin.zsh +# ZSH_COMMAND_TIME_COLOR="yellow" +# ZSH_COMMAND_TIME_MIN_SECONDS=3 +# ZSH_COMMAND_TIME_ECHO=1 +# ''; + +stdenv.mkDerivation { + version = "2018-04-30"; + pname = "zsh-command-time"; + + src = fetchFromGitHub { + owner = "popstas"; + repo = "zsh-command-time"; + rev = "afb4a4c9ae7ce64ca9d4f334a79a25e46daad0aa"; + sha256 = "1bvyjgz6bhgg1nwr56r50p6fblgah6yiql55pgm5abnn2h876fjq"; + }; + + strictDeps = true; + dontUnpack = true; + + installPhase = '' + install -Dm0444 $src/command-time.plugin.zsh --target-directory=$out/share/zsh/plugins/command-time + ''; + + meta = with lib; { + description = "Plugin that output time: xx after long commands"; + homepage = "https://github.com/popstas/zsh-command-time"; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix new file mode 100644 index 000000000000..1873c38fb9a1 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zsh-completions"; + version = "0.35.0"; + + src = fetchFromGitHub { + owner = "zsh-users"; + repo = pname; + rev = version; + sha256 = "sha256-GFHlZjIHUWwyeVoCpszgn4AmLPSSE8UVNfRmisnhkpg="; + }; + + strictDeps = true; + installPhase = '' + install -D --target-directory=$out/share/zsh/site-functions src/* + + # tmuxp install it so avoid collision + rm $out/share/zsh/site-functions/_tmuxp + ''; + + meta = { + description = "Additional completion definitions for zsh"; + homepage = "https://github.com/zsh-users/zsh-completions"; + license = lib.licenses.free; + + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.olejorgenb ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-deer/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-deer/default.nix new file mode 100644 index 000000000000..0d3a6bc9ee61 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-deer/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, perl }: + +stdenv.mkDerivation rec { + pname = "deer"; + version = "1.4"; + + src = fetchFromGitHub { + owner = "Vifon"; + repo = "deer"; + rev = "v${version}"; + sha256 = "1xnbnbi0zk2xsyn8dqsmyxqlfnl36pb1wwibnlp0dxixw6sfymyl"; + }; + + strictDeps = true; + + prePatch = '' + substituteInPlace deer \ + --replace " perl " " ${perl}/bin/perl " + ''; + + patches = [ ./realpath.patch ]; + + installPhase = '' + mkdir -p $out/share/zsh/site-functions/ + cp deer $out/share/zsh/site-functions/ + ''; + + meta = with lib; { + description = "Ranger-like file navigation for zsh"; + homepage = "https://github.com/Vifon/deer"; + license = licenses.gpl3Plus; + maintainers = [ maintainers.vyp ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-deer/realpath.patch b/nixpkgs/pkgs/shells/zsh/zsh-deer/realpath.patch new file mode 100644 index 000000000000..03850d7e5c12 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-deer/realpath.patch @@ -0,0 +1,28 @@ +From ceadb2f11119143af4f590ea6b05a531483219b5 Mon Sep 17 00:00:00 2001 +From: xd1le <elisp.vim@gmail.com> +Date: Wed, 30 Aug 2017 17:27:20 +1000 +Subject: [PATCH] use realpath instead of python to calculate relative path + +--- + deer | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/deer b/deer +index 3d89dea..804a871 100644 +--- a/deer ++++ b/deer +@@ -259,10 +259,7 @@ deer-get-relative() + { + local TMP + TMP=${1:-${DEER_DIRNAME%/}/$DEER_BASENAME[$DEER_DIRNAME]} +- TMP="`python -c ' +-import sys, os +-print(os.path.relpath(sys.argv[1], sys.argv[2])) +-' $TMP ${DEER_STARTDIR:-$PWD}`" ++ TMP="`realpath --relative-to=${DEER_STARTDIR:-$PWD} $TMP`" + print -R $TMP:q + } + +-- +2.14.1 + diff --git a/nixpkgs/pkgs/shells/zsh/zsh-defer/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-defer/default.nix new file mode 100644 index 000000000000..e21a254af52a --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-defer/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zsh-defer"; + version = "unstable-2022-06-13"; + + src = fetchFromGitHub { + owner = "romkatv"; + repo = pname; + rev = "57a6650ff262f577278275ddf11139673e01e471"; + sha256 = "sha256-/rcIS2AbTyGw2HjsLPkHtt50c2CrtAFDnLuV5wsHcLc="; + }; + + strictDeps = true; + dontConfigure = true; + dontBuild = true; + installPhase = '' + mkdir -p $out/share/zsh-defer + cp zsh-defer* $out/share/zsh-defer + ''; + + meta = with lib; { + description = "Deferred execution of zsh commands"; + homepage = "https://github.com/romkatv/zsh-defer"; + license = licenses.gpl3Only; + platforms = platforms.unix; + maintainers = [ maintainers.vinnymeller ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-edit/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-edit/default.nix new file mode 100644 index 000000000000..9c734c928c24 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-edit/default.nix @@ -0,0 +1,33 @@ +{ stdenv, lib, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zsh-edit"; + version = "unstable-2022-05-05"; + + src = fetchFromGitHub { + owner = "marlonrichert"; + repo = "zsh-edit"; + rev = "4a8fa599792b6d52eadbb3921880a40872013d28"; + sha256 = "PI4nvzB/F0mHlc0UZJdD49vjzB6pXhhJYNTSmBhY8iU="; + }; + + strictDeps = true; + + dontBuild = true; + + installPhase = '' + outdir=$out/share/zsh/${pname} + install -D zsh-edit.plugin.zsh $outdir/zsh-edit.plugin.zsh + install -D _bind $outdir/_bind + install -d $outdir/functions + install -D functions/{,.edit}* $outdir/functions + ''; + + meta = with lib; { + homepage = "https://github.com/marlonrichert/zsh-edit"; + description = "A set of powerful extensions to the Zsh command line editor"; + license = licenses.mit; + maintainers = with maintainers; [ deejayem ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-f-sy-h/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-f-sy-h/default.nix new file mode 100644 index 000000000000..0e18eaa95838 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-f-sy-h/default.nix @@ -0,0 +1,32 @@ +{ stdenvNoCC, lib, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "zsh-f-sy-h"; + version = "1.67"; + + src = fetchFromGitHub { + owner = "z-shell"; + repo = "F-Sy-H"; + rev = "v${version}"; + sha256 = "0bcsc4kgda577fs3bnvymmxdz3z5mf19pn8ngfqsklabnf79f5nf"; + }; + + strictDeps = true; + dontConfigure = true; + dontBuild = true; + + installPhase = '' + plugindir="$out/share/zsh/site-functions" + + mkdir -p "$plugindir" + cp -r -- F-Sy-H.plugin.zsh chroma functions share themes "$plugindir"/ + ''; + + meta = with lib; { + description = "Feature-rich Syntax Highlighting for Zsh"; + homepage = "https://github.com/z-shell/F-Sy-H"; + license = licenses.bsd3; + maintainers = with maintainers; [ mrfreezeex ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-fast-syntax-highlighting/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-fast-syntax-highlighting/default.nix new file mode 100644 index 000000000000..68f09828b456 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-fast-syntax-highlighting/default.nix @@ -0,0 +1,31 @@ +{ stdenvNoCC, lib, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "zsh-fast-syntax-highlighting"; + version = "1.55"; + + src = fetchFromGitHub { + owner = "zdharma-continuum"; + repo = "fast-syntax-highlighting"; + rev = "v${version}"; + sha256 = "0h7f27gz586xxw7cc0wyiv3bx0x3qih2wwh05ad85bh2h834ar8d"; + }; + + strictDeps = true; + dontConfigure = true; + dontBuild = true; + + installPhase = '' + plugindir="$out/share/zsh/site-functions" + + mkdir -p "$plugindir" + cp -r -- {,_,-,.}fast-* *chroma themes "$plugindir"/ + ''; + + meta = with lib; { + description = "Syntax-highlighting for Zshell"; + homepage = "https://github.com/zdharma-continuum/fast-syntax-highlighting"; + license = licenses.bsd3; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-forgit/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-forgit/default.nix new file mode 100644 index 000000000000..2cdb274eda8b --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-forgit/default.nix @@ -0,0 +1,56 @@ +{ stdenv +, lib +, bash +, coreutils +, findutils +, fetchFromGitHub +, fzf +, git +, gnugrep +, gnused +, makeWrapper +}: + +stdenv.mkDerivation rec { + pname = "zsh-forgit"; + version = "23.09.0"; + + src = fetchFromGitHub { + owner = "wfxr"; + repo = "forgit"; + rev = version; + sha256 = "sha256-WvJxjEzF3vi+YPVSH3QdDyp3oxNypMoB71TAJ7D8hOQ="; + }; + + strictDeps = true; + + postPatch = '' + substituteInPlace forgit.plugin.zsh \ + --replace "\$INSTALL_DIR/bin/git-forgit" "$out/bin/git-forgit" + ''; + + dontBuild = true; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + install -D bin/git-forgit $out/bin/git-forgit + install -D completions/_git-forgit $out/share/zsh/site-functions/_git-forgit + install -D completions/git-forgit.zsh $out/share/zsh/${pname}/git-forgit.zsh + install -D forgit.plugin.zsh $out/share/zsh/${pname}/forgit.plugin.zsh + wrapProgram $out/bin/git-forgit \ + --prefix PATH : ${lib.makeBinPath [ bash coreutils findutils fzf git gnugrep gnused ]} + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/wfxr/forgit"; + description = "A utility tool powered by fzf for using git interactively"; + license = licenses.mit; + maintainers = with maintainers; [ deejayem ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-fzf-history-search/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-fzf-history-search/default.nix new file mode 100644 index 000000000000..c6d32f8d7612 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-fzf-history-search/default.nix @@ -0,0 +1,36 @@ +{ lib +, stdenvNoCC +, fetchFromGitHub +}: + +stdenvNoCC.mkDerivation { + pname = "zsh-fzf-history-search"; + version = "unstable-2023-03-08"; + + src = fetchFromGitHub { + owner = "joshskidmore"; + repo = "zsh-fzf-history-search"; + rev = "d1aae98ccd6ce153c97a5401d79fd36418cd2958"; + hash = "sha256-4Dp2ehZLO83NhdBOKV0BhYFIvieaZPqiZZZtxsXWRaQ="; + }; + + dontConfigure = true; + dontBuild = true; + strictDeps = true; + + installPhase = '' + runHook preInstall + + install -D zsh-fzf-history-search*.zsh --target-directory=$out/share/zsh-fzf-history-search + + runHook postInstall + ''; + + meta = { + description = "A simple zsh plugin that replaces Ctrl+R with an fzf-driven select which includes date/times"; + homepage = "https://github.com/joshskidmore/zsh-fzf-history-search"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ janik ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix new file mode 100644 index 000000000000..d84dc2233562 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix @@ -0,0 +1,46 @@ +{ stdenv, lib, fetchFromGitHub, ncurses }: + +let + INSTALL_PATH="${placeholder "out"}/share/fzf-tab"; +in stdenv.mkDerivation rec { + pname = "zsh-fzf-tab"; + version = "unstable-2023-06-11"; + + src = fetchFromGitHub { + owner = "Aloxaf"; + repo = "fzf-tab"; + rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9"; + sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w="; + }; + + strictDeps = true; + buildInputs = [ ncurses ]; + + postConfigure = '' + pushd modules + ./configure --disable-gdbm --without-tcsetpgrp + popd + ''; + + postBuild = '' + pushd modules + make -j$NIX_BUILD_CORES + popd + ''; + + installPhase = '' + mkdir -p ${INSTALL_PATH} + cp -r lib ${INSTALL_PATH}/lib + install -D fzf-tab.zsh ${INSTALL_PATH}/fzf-tab.zsh + install -D fzf-tab.plugin.zsh ${INSTALL_PATH}/fzf-tab.plugin.zsh + install -D modules/Src/aloxaf/fzftab.so ${INSTALL_PATH}/modules/Src/aloxaf/fzftab.so + ''; + + meta = with lib; { + homepage = "https://github.com/Aloxaf/fzf-tab"; + description = "Replace zsh's default completion selection menu with fzf!"; + license = licenses.mit; + maintainers = with maintainers; [ vonfry ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-git-prompt/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-git-prompt/default.nix new file mode 100644 index 000000000000..f9e5633476ab --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-git-prompt/default.nix @@ -0,0 +1,70 @@ +# zsh-git-prompt -- Informative git prompt for zsh +# +# Usage: to enable this plugin for all users, you could +# add it to configuration.nix like this: +# +# programs.zsh.interactiveShellInit = '' +# source ${pkgs.zsh-git-prompt}/share/zsh-git-prompt/zshrc.sh +# ''; +# +# Or you can install it globally but only enable it in individual +# users' ~/.zshrc files: +# +# source /run/current-system/sw/share/zsh-git-prompt/zshrc.sh +# +# Or if installed locally: +# +# source ~/.nix-profile/share/zsh-git-prompt/zshrc.sh +# +# Either way, you then have to set a prompt that incorporates +# git_super_status, for example: +# +# PROMPT='%B%m%~%b$(git_super_status) %# ' +# +# More details are in share/doc/zsh-git-prompt/README.md, once +# installed. +# +{ fetchFromGitHub +, python3 +, git +, lib +, haskellPackages +}: + +haskellPackages.callPackage + ({ mkDerivation, base, HUnit, parsec, process, QuickCheck }: + mkDerivation rec { + pname = "zsh-git-prompt"; + version = "0.4z"; # While we await a real 0.5 release. + src = fetchFromGitHub { + owner = "starcraftman"; + repo = "zsh-git-prompt"; + rev = "11b83ba3b85d14c66cf2ab79faefab6d838da28e"; + sha256 = "04aylsjfb03ckw219plkzpyiq4j9g66bjxa5pa56h1p7df6pjssb"; + }; + prePatch = '' + substituteInPlace zshrc.sh \ + --replace ':-"python"' ':-"haskell"' \ + --replace 'python ' '${python3.interpreter} ' \ + --replace 'git ' '${git}/bin/git ' + ''; + preCompileBuildDriver = "cd src"; + postInstall = '' + cd .. + gpshare=$out/share/${pname} + gpdoc=$out/share/doc/${pname} + mkdir -p $gpshare/src $gpdoc + cp README.md $gpdoc + cp zshrc.sh gitstatus.py $gpshare + mv $out/bin $gpshare/src/.bin + ''; + isLibrary = false; + isExecutable = true; + libraryHaskellDepends = [ base parsec process QuickCheck ]; + executableHaskellDepends = libraryHaskellDepends; + testHaskellDepends = [HUnit] ++ libraryHaskellDepends; + homepage = "https://github.com/olivierverdier/zsh-git-prompt#readme"; + description = "Informative git prompt for zsh"; + license = lib.licenses.mit; + maintainers = [lib.maintainers.league]; + }) {} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-history-search-multi-word/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-history-search-multi-word/default.nix new file mode 100644 index 000000000000..30d26c967662 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-history-search-multi-word/default.nix @@ -0,0 +1,31 @@ +{ stdenvNoCC, lib, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "zsh-history-search-multi-word"; + version = "unstable-2021-11-13"; + + src = fetchFromGitHub { + owner = "zdharma-continuum"; + repo = "history-search-multi-word"; + rev = "5b44d8cea12351d91fbdc3697916556f59f14b8c"; + sha256 = "11r2mmy6bg3b6pf6qc0ml3idh333cj8yz754hrvd1sc4ipfkkqh7"; + }; + + strictDeps = true; + dontConfigure = true; + dontBuild = true; + + installPhase = '' + plugindir="$out/share/zsh/${pname}" + + mkdir -p "$plugindir" + cp -r -- history-* hsmw-* "$plugindir"/ + ''; + + meta = with lib; { + description = "Multi-word, syntax highlighted history searching for Zsh"; + homepage = "https://github.com/zdharma-continuum/history-search-multi-word"; + license = with licenses; [ gpl3 mit ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-history-substring-search/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-history-substring-search/default.nix new file mode 100644 index 000000000000..4b2aea76a7b7 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-history-substring-search/default.nix @@ -0,0 +1,27 @@ +{ stdenv, lib, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zsh-history-substring-search"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "zsh-users"; + repo = "zsh-history-substring-search"; + rev = "v${version}"; + sha256 = "0vjw4s0h4sams1a1jg9jx92d6hd2swq4z908nbmmm2qnz212y88r"; + }; + + strictDeps = true; + installPhase = '' + install -D zsh-history-substring-search.zsh \ + "$out/share/zsh-history-substring-search/zsh-history-substring-search.zsh" + ''; + + meta = with lib; { + description = "Fish shell history-substring-search for Zsh"; + homepage = "https://github.com/zsh-users/zsh-history-substring-search"; + license = licenses.bsd3; + maintainers = with maintainers; [ qyliss ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix new file mode 100644 index 000000000000..6693f466216c --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix @@ -0,0 +1,37 @@ +{ lib, fetchFromGitHub, buildGoModule, installShellFiles, nixosTests }: + +buildGoModule rec { + pname = "zsh-history"; + version = "2019-12-10"; + + src = fetchFromGitHub { + owner = "b4b4r07"; + repo = "history"; + rev = "8da016bd91b0c2eb53c9980f00eee6abdbb097e2"; + sha256 = "13n643ik1zjvpk8h9458yd9ffahhbdnigmbrbmpn7b7g23wqqsi3"; + }; + + vendorHash = "sha256-n5QFN1B2GjbzylFuW9Y4r0+ioIJlfKwcGK8X3ZwKLI8="; + + nativeBuildInputs = [ installShellFiles ]; + + doCheck = false; + + postInstall = '' + install -d $out/share + cp -r "$NIX_BUILD_TOP/source/misc/"* "$out/share" + installShellCompletion --zsh --name _history $out/share/zsh/completions/_history + ''; + + passthru.tests = { + zsh-history-shell-integration = nixosTests.zsh-history; + }; + + meta = with lib; { + description = "A CLI to provide enhanced history for your ZSH shell"; + homepage = "https://github.com/b4b4r07/history"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + mainProgram = "history"; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix new file mode 100644 index 000000000000..8ae87386c259 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, bash }: + +# To make use of this derivation, use +# `programs.zsh.interactiveShellInit = "source ${pkgs.zsh-nix-shell}/share/zsh-nix-shell/nix-shell.plugin.zsh";` + +stdenv.mkDerivation rec { + pname = "zsh-nix-shell"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "chisui"; + repo = "zsh-nix-shell"; + rev = "v${version}"; + sha256 = "sha256-oQpYKBt0gmOSBgay2HgbXiDoZo5FoUKwyHSlUrOAP5E="; + }; + + strictDeps = true; + buildInputs = [ bash ]; + installPhase = '' + install -D nix-shell.plugin.zsh --target-directory=$out/share/zsh-nix-shell + install -D scripts/* --target-directory=$out/share/zsh-nix-shell/scripts + ''; + + meta = with lib; { + description = "zsh plugin that lets you use zsh in nix-shell shell"; + homepage = src.meta.homepage; + license = licenses.bsd3; + platforms = platforms.unix; + maintainers = with maintainers; [ aw ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix new file mode 100644 index 000000000000..be1d69e3e2e3 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix @@ -0,0 +1,59 @@ +{ lib, stdenv, fetchFromGitHub, substituteAll, pkgs, bash }: + + +let + # match gitstatus version with given `gitstatus_version`: + # https://github.com/romkatv/powerlevel10k/blob/master/gitstatus/build.info + gitstatus = pkgs.gitstatus.overrideAttrs (oldAtttrs: rec { + version = "1.5.4"; + + src = fetchFromGitHub { + owner = "romkatv"; + repo = "gitstatus"; + rev = "refs/tags/v${version}"; + hash = "sha256-mVfB3HWjvk4X8bmLEC/U8SKBRytTh/gjjuReqzN5qTk="; + }; + }); +in +stdenv.mkDerivation rec { + pname = "powerlevel10k"; + version = "1.19.0"; + + src = fetchFromGitHub { + owner = "romkatv"; + repo = "powerlevel10k"; + rev = "refs/tags/v${version}"; + hash = "sha256-+hzjSbbrXr0w1rGHm6m2oZ6pfmD6UUDBfPd7uMg5l5c="; + }; + + strictDeps = true; + buildInputs = [ bash ]; + + patches = [ + (substituteAll { + src = ./gitstatusd.patch; + gitstatusdPath = "${gitstatus}/bin/gitstatusd"; + }) + ]; + + installPhase = '' + install -D powerlevel10k.zsh-theme --target-directory=$out/share/zsh-powerlevel10k + install -D powerlevel9k.zsh-theme --target-directory=$out/share/zsh-powerlevel10k + install -D config/* --target-directory=$out/share/zsh-powerlevel10k/config + install -D internal/* --target-directory=$out/share/zsh-powerlevel10k/internal + cp -R gitstatus $out/share/zsh-powerlevel10k/gitstatus + ''; + + meta = { + changelog = "https://github.com/romkatv/powerlevel10k/releases/tag/v${version}"; + description = "A fast reimplementation of Powerlevel9k ZSH theme"; + longDescription = '' + To make use of this derivation, use + `programs.zsh.promptInit = "source ''${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme";` + ''; + homepage = "https://github.com/romkatv/powerlevel10k"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ hexa ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/gitstatusd.patch b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/gitstatusd.patch new file mode 100644 index 000000000000..3d1c1eaa36d4 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/gitstatusd.patch @@ -0,0 +1,13 @@ +diff --git a/gitstatus/gitstatus.plugin.zsh b/gitstatus/gitstatus.plugin.zsh +index b469072..eb1e3be 100644 +--- a/gitstatus/gitstatus.plugin.zsh ++++ b/gitstatus/gitstatus.plugin.zsh +@@ -44,6 +44,8 @@ + + [[ -o 'interactive' ]] || 'return' + ++GITSTATUS_DAEMON=@gitstatusdPath@ ++ + # Temporarily change options. + 'builtin' 'local' '-a' '_gitstatus_opts' + [[ ! -o 'aliases' ]] || _gitstatus_opts+=('aliases') diff --git a/nixpkgs/pkgs/shells/zsh/zsh-powerlevel9k/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel9k/default.nix new file mode 100644 index 000000000000..35d5aa48b0c1 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel9k/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation { + pname = "powerlevel9k"; + version = "2017-11-10"; + src = fetchFromGitHub { + owner = "bhilburn"; + repo = "powerlevel9k"; + rev = "87acc51acab3ed4fd33cda2386abed6f98c80720"; + sha256 = "0v1dqg9hvycdkcvklg2njff97xwr8rah0nyldv4xm39r77f4yfvq"; + }; + + strictDeps = true; + installPhase= '' + install -D powerlevel9k.zsh-theme --target-directory=$out/share/zsh-powerlevel9k + install -D functions/* --target-directory=$out/share/zsh-powerlevel9k/functions + ''; + + meta = { + description = "A beautiful theme for zsh"; + longDescription = '' + To make use of this derivation, use + `programs.zsh.promptInit = "source ''${pkgs.zsh-powerlevel9k}/share/zsh-powerlevel9k/powerlevel9k.zsh-theme";` + ''; + homepage = "https://github.com/bhilburn/powerlevel9k"; + license = lib.licenses.mit; + + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.pierrechevalier83 ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix new file mode 100644 index 000000000000..7c7ba87d848d --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchFromGitHub, unstableGitUpdater, bash }: + +stdenv.mkDerivation rec { + pname = "zsh-prezto"; + version = "unstable-2023-09-12"; + + src = fetchFromGitHub { + owner = "sorin-ionescu"; + repo = "prezto"; + rev = "5ac930d96be3a51730f7d9d7330f28d9c9c36e0a"; + sha256 = "tyroeGADhBRCQ9/WqNSqMV7kvFUPdC2fcs/B5G5qYhI="; + fetchSubmodules = true; + }; + + strictDeps = true; + buildInputs = [ bash ]; + + postPatch = '' + # make zshrc aware of where zsh-prezto is installed + sed -i -e "s|\''${ZDOTDIR:\-\$HOME}/.zprezto/|$out/share/zsh-prezto/|g" runcoms/zshrc + ''; + + installPhase = '' + mkdir -p $out/share/zsh-prezto + cp -R ./ $out/share/zsh-prezto + ''; + + passthru.updateScript = unstableGitUpdater {}; + + meta = with lib; { + description = "The configuration framework for Zsh"; + longDescription = '' + Prezto is the configuration framework for Zsh; it enriches + the command line interface environment with sane defaults, + aliases, functions, auto completion, and prompt themes. + ''; + homepage = "https://github.com/sorin-ionescu/prezto"; + license = licenses.mit; + maintainers = with maintainers; [ holymonson ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-syntax-highlighting/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-syntax-highlighting/default.nix new file mode 100644 index 000000000000..86723354ba6c --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-syntax-highlighting/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, zsh }: + +# To make use of this derivation, use the `programs.zsh.enableSyntaxHighlighting` option + +stdenv.mkDerivation rec { + version = "0.7.1"; + pname = "zsh-syntax-highlighting"; + + src = fetchFromGitHub { + owner = "zsh-users"; + repo = "zsh-syntax-highlighting"; + rev = version; + sha256 = "03r6hpb5fy4yaakqm3lbf4xcvd408r44jgpv4lnzl9asp4sb9qc0"; + }; + + strictDeps = true; + nativeBuildInputs = [ zsh ]; + + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "Fish shell like syntax highlighting for Zsh"; + homepage = "https://github.com/zsh-users/zsh-syntax-highlighting"; + license = licenses.bsd3; + platforms = platforms.unix; + maintainers = [ maintainers.loskutov ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-system-clipboard/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-system-clipboard/default.nix new file mode 100644 index 000000000000..6e875b6ee086 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-system-clipboard/default.nix @@ -0,0 +1,26 @@ +{ stdenv, lib, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zsh-system-clipboard"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "kutsan"; + repo = "zsh-system-clipboard"; + rev = "v${version}"; + sha256 = "09lqav1mz5zajklr3xa0iaivhpykv3azkjb7yj9wyp0hq3vymp8i"; + }; + + strictDeps = true; + installPhase = '' + install -D zsh-system-clipboard.zsh $out/share/zsh/${pname}/zsh-system-clipboard.zsh + ''; + + meta = with lib; { + homepage = "https://github.com/kutsan/zsh-system-clipboard"; + description = "A plugin that adds key bindings support for ZLE (Zsh Line Editor) clipboard operations for vi emulation keymaps"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ _0qq ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-vi-mode/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-vi-mode/default.nix new file mode 100644 index 000000000000..372dedcf5d87 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-vi-mode/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zsh-vi-mode"; + version = "0.10.0"; + + src = fetchFromGitHub { + owner = "jeffreytse"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-QE6ZwwM2X0aPqNnbVrj0y7w9hmuRf0H1j8nXYwyoLo4="; + }; + + strictDeps = true; + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/${pname} + cp *.zsh $out/share/${pname}/ + ''; + + meta = with lib; { + homepage = "https://github.com/jeffreytse/zsh-vi-mode"; + license = licenses.mit; + description = "A better and friendly vi(vim) mode plugin for ZSH."; + maintainers = with maintainers; [ kyleondy ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix new file mode 100644 index 000000000000..b3db825bbba6 --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zsh-you-should-use"; + version = "1.7.3"; + + src = fetchFromGitHub { + owner = "MichaelAquilina"; + repo = pname; + rev = version; + sha256 = "1dz48rd66priqhxx7byndqhbmlwxi1nfw8ik25k0z5k7k754brgy"; + }; + + strictDeps = true; + dontBuild = true; + + installPhase = '' + install -D you-should-use.plugin.zsh $out/share/zsh/plugins/you-should-use/you-should-use.plugin.zsh + ''; + + meta = with lib; { + homepage = "https://github.com/MichaelAquilina/zsh-you-should-use"; + license = licenses.gpl3; + description = "ZSH plugin that reminds you to use existing aliases for commands you just typed"; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/shells/zsh/zsh-z/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-z/default.nix new file mode 100644 index 000000000000..a03b81cb6bfd --- /dev/null +++ b/nixpkgs/pkgs/shells/zsh/zsh-z/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenvNoCC, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "zsh-z"; + version = "unstable-2021-02-15"; + + src = fetchFromGitHub { + owner = "agkozak"; + repo = pname; + rev = "595c883abec4682929ffe05eb2d088dd18e97557"; + sha256 = "sha256-HnwUWqzwavh/Qox+siOe5lwTp7PBdiYx+9M0NMNFx00="; + }; + + strictDeps = true; + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/zsh-z + cp _zshz zsh-z.plugin.zsh $out/share/zsh-z + ''; + + meta = with lib; { + description = "Jump quickly to directories that you have visited frequently in the past, or recently"; + homepage = "https://github.com/agkozak/zsh-z"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = [ maintainers.evalexpr ]; + }; +} |