dev/flake.nix

95 lines
2.3 KiB
Nix

{
description = "A very basic flake";
inputs.fup.url = "github:gytis-ivaskevicius/flake-utils-plus";
nixConfig = {
nix = ["http://cache.home"];
};
outputs = {
self,
fup,
nixpkgs,
}:
fup.lib.eachSystem [fup.lib.system.x86_64-linux] (system: let
pkgs = import nixpkgs {inherit system;};
mdpls = let
version = "30761508593d85b5743ae39c4209947740eec92d";
in
pkgs.rustPlatform.buildRustPackage rec {
inherit version;
pname = "mdpls";
src = pkgs.fetchFromGitHub {
owner = "euclio";
repo = "mdpls";
rev = version;
sha256 = "sha256-4n1MX8hS7JmKzaL8GfMq2q3IdwE4fvMmWOYo7rY+cdY=";
};
cargoSha256 = "sha256-J49A43BSCJGqaY7AX7XsoMwy6sgyaIx2Vz57Z1cFItc=";
};
shells = {
nix = {
name = "generic nix";
packages = with pkgs; [
alejandra
nil
];
};
node = {
name = "generic node";
packages = with pkgs; [
nodejs
yarn
nodePackages.vls
nodePackages.typescript-language-server
nodePackages.yaml-language-server
nodePackages.vscode-json-languageserver-bin
nodePackages.vscode-html-languageserver-bin
nodePackages.vscode-css-languageserver-bin
];
};
nodeIonic = {
name = "generic node + ionic";
packages =
shells.node.packages
++ (with pkgs; [
android-studio
]);
};
php = {
name = "generic php";
packages = with pkgs; [
php
phpPackages.composer
];
};
nodePhp = {
name = "generic node + php";
packages = with shells; node.packages ++ php.packages;
};
python = {
name = "generic python";
packages = with pkgs; [
python3Packages.python-lsp-server
];
};
markdown = {
name = "generic markdown";
packages = [mdpls];
};
};
in {
devShells = pkgs.lib.attrsets.mapAttrs (name: value: pkgs.mkShell value) shells;
hydraJobs = self.devShells.${system};
packages = {
inherit mdpls;
};
});
}