Restructure everything
This commit is contained in:
parent
81ca8af870
commit
a8a26921b4
43
bash/nixpkgs/flake.lock
Normal file
43
bash/nixpkgs/flake.lock
Normal file
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1722073938,
|
||||
"narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"systems": "systems"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
17
bash/nixpkgs/flake.nix
Normal file
17
bash/nixpkgs/flake.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
systems.url = "github:nix-systems/default";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, systems, ... }:
|
||||
let eachSystem = nixpkgs.lib.genAttrs (import systems);
|
||||
in {
|
||||
packages = eachSystem (system:
|
||||
let pkgs = nixpkgs.legacyPackages.${system};
|
||||
in {
|
||||
soe = pkgs.callPackage ./package.nix {};
|
||||
default = self.packages.${system}.soe;
|
||||
});
|
||||
};
|
||||
}
|
|
@ -1,10 +1,9 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, bash
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "soe-bash";
|
||||
pname = "soe";
|
||||
version = "1.0";
|
||||
|
||||
src = ./.;
|
||||
|
@ -13,6 +12,6 @@ stdenv.mkDerivation {
|
|||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp soe-bash $out/bin
|
||||
cp soe $out/bin
|
||||
'';
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
echo -n "Primes up to: "
|
||||
read num
|
||||
echo
|
||||
|
43
fish/nixpkgs/flake.lock
Normal file
43
fish/nixpkgs/flake.lock
Normal file
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1722141560,
|
||||
"narHash": "sha256-Ul3rIdesWaiW56PS/Ak3UlJdkwBrD4UcagCmXZR9Z7Y=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "038fb464fcfa79b4f08131b07f2d8c9a6bcc4160",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"systems": "systems"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
17
fish/nixpkgs/flake.nix
Normal file
17
fish/nixpkgs/flake.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
systems.url = "github:nix-systems/default";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, systems, ... }:
|
||||
let eachSystem = nixpkgs.lib.genAttrs (import systems);
|
||||
in {
|
||||
packages = eachSystem (system:
|
||||
let pkgs = nixpkgs.legacyPackages.${system};
|
||||
in {
|
||||
soe = pkgs.callPackage ./package.nix {};
|
||||
default = self.packages.${system}.soe;
|
||||
});
|
||||
};
|
||||
}
|
|
@ -1,10 +1,9 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fish
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "soe-fish";
|
||||
pname = "soe";
|
||||
version = "1.0";
|
||||
|
||||
src = ./.;
|
||||
|
@ -13,6 +12,6 @@ stdenv.mkDerivation {
|
|||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp soe-fish $out/bin
|
||||
cp soe $out/bin
|
||||
'';
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env fish
|
||||
|
||||
echo -n "Primes up to: "
|
||||
read -P "" num
|
||||
echo
|
||||
|
37
flake.lock
37
flake.lock
|
@ -1,41 +1,6 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1667395993,
|
||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1675132057,
|
||||
"narHash": "sha256-lq7VYB8J2wn35CeByP9760tR6mwQtztPze+J8O4fHdU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5b374db81f4a26de2cef6dae71b4478b362866a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
"root": {}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
|
|
61
flake.nix
61
flake.nix
|
@ -1,28 +1,43 @@
|
|||
{
|
||||
description = "The Sieve of Eratosthenes implemented in many different languages";
|
||||
description = "Templates of the Sieve of Eratosthenes implemented in various languages";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils, ... }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
outputs = { self, ... }:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
inherit (pkgs) lib;
|
||||
|
||||
# Check if project has a shell.nix
|
||||
hasShell = dir: builtins.pathExists ./${dir}/shell.nix;
|
||||
|
||||
# Get all project directories
|
||||
currentDir = builtins.readDir ./.;
|
||||
dirs = builtins.attrNames (lib.filterAttrs (_: v: v == "directory") currentDir);
|
||||
in
|
||||
builtins.foldl' lib.recursiveUpdate {} (builtins.map (dir: {
|
||||
packages.${dir} = pkgs.callPackage ./${dir} {};
|
||||
} // lib.optionalAttrs (hasShell dir) {
|
||||
devShells.${dir} = pkgs.callPackage ./${dir}/shell.nix {};
|
||||
}) dirs)
|
||||
);
|
||||
subdirs = dir:
|
||||
let sub = builtins.readDir dir;
|
||||
in builtins.filter
|
||||
(d: sub.${d} == "directory")
|
||||
(builtins.attrNames sub);
|
||||
|
||||
vowelStart = str: builtins.elem (builtins.substring 0 1 str) [ "a" "e" "i" "o" "u" ];
|
||||
|
||||
concatMapAttrs = func: attr:
|
||||
builtins.foldl' (x: y: x // y) {}
|
||||
(builtins.map func attr);
|
||||
|
||||
templateDirs =
|
||||
builtins.concatMap (lang:
|
||||
builtins.map
|
||||
(pkg: { inherit lang pkg; })
|
||||
(subdirs ./${lang}))
|
||||
(subdirs ./.);
|
||||
in {
|
||||
templates = concatMapAttrs ({ lang, pkg }: {
|
||||
"${lang}-${pkg}" = {
|
||||
description = "Packaging a${if vowelStart lang
|
||||
then "n"
|
||||
else ""} ${lang} executable using ${pkg}";
|
||||
path = builtins.filterSource
|
||||
(path: type: builtins.baseNameOf path != "flake.lock")
|
||||
./${lang}/${pkg};
|
||||
};
|
||||
}) templateDirs // concatMapAttrs (lang: {
|
||||
"${lang}" = self.templates."${lang}-nixpkgs" // {
|
||||
description = "Packaging a${if vowelStart lang
|
||||
then "n"
|
||||
else ""} ${lang} executable";
|
||||
};
|
||||
}) (subdirs ./.);
|
||||
};
|
||||
}
|
||||
|
|
43
python/nixpkgs/flake.lock
Normal file
43
python/nixpkgs/flake.lock
Normal file
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1722141560,
|
||||
"narHash": "sha256-Ul3rIdesWaiW56PS/Ak3UlJdkwBrD4UcagCmXZR9Z7Y=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "038fb464fcfa79b4f08131b07f2d8c9a6bcc4160",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"systems": "systems"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
17
python/nixpkgs/flake.nix
Normal file
17
python/nixpkgs/flake.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
systems.url = "github:nix-systems/default";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, systems, ... }:
|
||||
let eachSystem = nixpkgs.lib.genAttrs (import systems);
|
||||
in {
|
||||
packages = eachSystem (system:
|
||||
let pkgs = nixpkgs.legacyPackages.${system};
|
||||
in {
|
||||
soe = pkgs.callPackage ./package.nix {};
|
||||
default = self.packages.${system}.soe;
|
||||
});
|
||||
};
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{ python3 }:
|
||||
|
||||
python3.pkgs.buildPythonApplication {
|
||||
pname = "soe-python";
|
||||
pname = "soe";
|
||||
version = "1.0";
|
||||
src = ./.;
|
||||
|
|
@ -3,5 +3,5 @@ from setuptools import setup
|
|||
setup(
|
||||
name="soe",
|
||||
version="1.0.0",
|
||||
scripts=["bin/soe-python"]
|
||||
scripts=["bin/soe"]
|
||||
)
|
|
@ -12,7 +12,7 @@ def main():
|
|||
another = True
|
||||
while another:
|
||||
try:
|
||||
num = int(input())
|
||||
num = int(input("Primes up to: "))
|
||||
another = False
|
||||
except ValueError:
|
||||
pass
|
Loading…
Reference in a new issue