initial commit
This commit is contained in:
commit
8227244e06
6 changed files with 416 additions and 0 deletions
62
nixcaps.nix
Normal file
62
nixcaps.nix
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
qmk,
|
||||
fetchFromGitHub,
|
||||
stdenv,
|
||||
lib,
|
||||
}:
|
||||
rec {
|
||||
qmk_firmware = fetchFromGitHub {
|
||||
owner = "qmk";
|
||||
repo = "qmk_firmware";
|
||||
rev = "0.30.3";
|
||||
sha256 = "sha256-lM5B9xl7sSxGhI/fbS0ys22t5oVUp8aMLI4pzICEKHk=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
compile =
|
||||
{
|
||||
keyboard,
|
||||
src,
|
||||
variant ? null,
|
||||
flash ? null,
|
||||
target ? "fw",
|
||||
...
|
||||
}:
|
||||
let
|
||||
buildDir = "build";
|
||||
keyboardDir = "keyboards/${keyboard}";
|
||||
keyboardVariant = if builtins.isNull variant then "${keyboard}" else "${keyboard}/${variant}";
|
||||
keymapName = "nixcaps";
|
||||
keymapDir = "${keyboardDir}/keymaps/${keymapName}";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "nixcaps-compile";
|
||||
src = qmk_firmware;
|
||||
buildInputs = [ qmk ];
|
||||
postPatch = ''
|
||||
mkdir -p ${keymapDir}
|
||||
cp -r ${src}/* ${keymapDir}/
|
||||
'';
|
||||
buildPhase = ''
|
||||
qmk compile \
|
||||
--env SKIP_GIT=true \
|
||||
--env BUILD_DIR=${buildDir} \
|
||||
--env TARGET=${target} \
|
||||
--keyboard ${keyboardVariant} \
|
||||
--keymap ${keymapName}
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ${buildDir}/*.{hex,bin,elf,dfu,uf2,eep} $out/bin
|
||||
|
||||
${lib.optionalString (!builtins.isNull flash) ''
|
||||
cat > $out/bin/flash <<EOF
|
||||
#!/bin/sh
|
||||
set -e
|
||||
${flash (placeholder "out" + "/bin/${target}")}
|
||||
EOF
|
||||
chmod +x $out/bin/flash
|
||||
''}
|
||||
'';
|
||||
dontFixup = true;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue