Skip to content

Instantly share code, notes, and snippets.

@benkolera
Created August 16, 2019 23:07
Show Gist options
  • Save benkolera/5e8dbbc07a8d5ade3f5e2bef4b210fa2 to your computer and use it in GitHub Desktop.
Save benkolera/5e8dbbc07a8d5ade3f5e2bef4b210fa2 to your computer and use it in GitHub Desktop.
Finds all of the .kak files in a directory like what plug.kak does.
{ nixpkgs ? import <nixpkgs> {} }:
with nixpkgs.lib; with builtins;
let
gosub = (parents: subpath: type:
let path = "${parents}/${subpath}";
in
if type == "directory"
then allKakFiles path
else if type == "regular" && hasSuffix ".kak" subpath then [path]
else []
);
allKakFiles = (dir:
let files = readDir dir;
in flatten (mapAttrsToList (gosub dir) files)
);
in allKakFiles ./.
# nix-repl> import ./foo.nix {}
# [ "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/modules/bufname.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/modules/client.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/modules/filetype.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/modules/git.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/modules/line_column.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/modules/mode_info.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/modules/position.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/modules/session.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/powerline.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/base16-gruvbox.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/base16.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/default.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/desertex.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/github.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/gruvbox.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/red-phoenix.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/reeder.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/solarized-dark-termcolors.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/solarized-dark.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/solarized-light-termcolors.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/solarized-light.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/tomorrow-night.kak" "/nix/store/fn3rml0c8gihc3msxxfmsd8q1c66hlxj-powerline.kak/rc/themes/zenburn.kak" ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment