diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..a53683d --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1773122722, + "narHash": "sha256-FIqHByVqxCprNjor1NqF80F2QQoiiyqanNNefdlvOg4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "62dc67aa6a52b4364dd75994ec00b51fbf474e50", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index 17fc0c1..6267bd1 100644 --- a/flake.nix +++ b/flake.nix @@ -12,10 +12,15 @@ pkgs = import nixpkgs { inherit system; }; in { - packages.${system}.hello-world = pkgs.callPackage ./packages/hello-world.nix { }; + packages.${system} = rec { + hello-world = pkgs.callPackage ./packages/hello-world.nix { }; + xonsh = pkgs.callPackage ./packages/xonsh.nix { }; + default = hello-world; + }; overlays.default = final: prev: { hello-world = final.callPackage ./packages/hello-world.nix { }; + xonsh = final.callPackage ./packages/xonsh.nix { }; }; devShells.${system}.default = pkgs.mkShell { diff --git a/packages/xonsh.nix b/packages/xonsh.nix new file mode 100644 index 0000000..dcf90cc --- /dev/null +++ b/packages/xonsh.nix @@ -0,0 +1,29 @@ +{ python3Packages }: + +python3Packages.buildPythonPackage rec { + pname = "xonsh"; + version = "0.22.7"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "sha256-gPApjBEctw1eLWN5gtz0ArJXPOcSqwyBNJBHdFMdRwk="; + }; + + # xonsh uses pyproject.toml setuptools + format = "pyproject"; + build-system = [ python3Packages.setuptools ]; + + propagatedBuildInputs = with python3Packages; [ + ply + prompt-toolkit + pygments + ]; + + doCheck = false; + + meta = { + description = "Python-powered shell that combines Python with shell features"; + homepage = "https://xon.sh"; + license = python3Packages.setuptools.meta.bsd3 or python3Packages.setuptools.meta.license; + }; +}