bba3f16c43
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
26 lines
615 B
Nix
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
|
|
'';
|
|
}
|