tvl-depot/scratch/brilliant/default.nix
William Carroll bba3f16c43 Prefer snake-shift instead of a row-by-row shift
Per the assignment's instructions, the `Shift n` operation should treat
the *entire keyboard* like a cycle and shift that. I was erroneously
treating *each row* like a cycle and shifting those one-by-one.

This change fixes that. In addition, it also:
- Updates README.md with expected inputs and outputs
- Updates test suite
- Adds `split` dependency to {default,shell}.nix
2020-08-12 12:03:35 +01:00

26 lines
615 B
Nix

let
pkgs = import (builtins.fetchGit {
url = "https://github.com/NixOS/nixpkgs-channels";
ref = "nixos-20.03";
rev = "afa9ca61924f05aacfe495a7ad0fd84709d236cc";
}) {};
ghc = pkgs.haskellPackages.ghcWithPackages (hpkgs: with hpkgs; [
optparse-applicative
unordered-containers
split
]);
in pkgs.stdenv.mkDerivation {
name = "transform-keyboard";
buildInputs = [];
src = builtins.path {
path = ./.;
name = "transform-keyboard-src";
};
buildPhase = ''
${ghc}/bin/ghc ./Main.hs
'';
installPhase = ''
mkdir -p $out && mv Main $out/transform-keyboard
'';
}