about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/shells/bash/blesh/default.nix58
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 60 insertions, 0 deletions
diff --git a/pkgs/shells/bash/blesh/default.nix b/pkgs/shells/bash/blesh/default.nix
new file mode 100644
index 0000000000000..f342f408540f3
--- /dev/null
+++ b/pkgs/shells/bash/blesh/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, git
+, bashInteractive
+, glibcLocales
+, runtimeShell
+}:
+
+stdenvNoCC.mkDerivation rec {
+  name = "blesh";
+  version = "unstable-2022-07-24";
+
+  src = fetchFromGitHub {
+    owner = "akinomyoga";
+    repo = "ble.sh";
+    rev = "0b95d5d900b79a63e7f0834da5aa7276b8332a44";
+    hash = "sha256-s/RQKcAFcCUB3Xd/4uOsIgigOE0lCCeVC9K3dfnP/EQ=";
+    fetchSubmodules = true;
+    leaveDotGit = true;
+  };
+
+  nativeBuildInputs = [ git ];
+
+  doCheck = true;
+  checkInputs = [ bashInteractive glibcLocales ];
+  preCheck = "export LC_ALL=en_US.UTF-8";
+
+  installFlags = [ "INSDIR=$(out)/share" ];
+  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/ble.sh"
+    EOF
+    chmod +x "$out/bin/blesh-share"
+
+    mkdir -p "$out/share/lib"
+    cat <<EOF >"$out/share/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." >/dev/stderr
+      return 1
+    }
+    EOF
+  '';
+
+  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/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1d608b05830b9..e8eb00942be8a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12451,6 +12451,8 @@ with pkgs;
 
   yarn-bash-completion = callPackage ../shells/bash/yarn-completion { };
 
+  blesh = callPackage ../shells/bash/blesh { };
+
   undistract-me = callPackage ../shells/bash/undistract-me { };
 
   dash = callPackage ../shells/dash { };