let pkgs = import {}; review = let moveToDir = key: dir: pkgs.writeText "move-with-${key}.lua" '' tmp_dir = "${dir}" function move_current_track_${key}() track = mp.get_property("path") os.execute("mkdir -p '" .. tmp_dir .. "'") os.execute("mv '" .. track .. "' '" .. tmp_dir .. "'") print("moved '" .. track .. "' to " .. tmp_dir) end mp.add_key_binding("${key}", "move_current_track_${key}", move_current_track_${key}) ''; delete = moveToDir "D" "./.graveyard"; good = moveToDir "G" "./.good"; #scripts = lib.concatStringsSep "," [ # delete # good #]; in pkgs.writers.writeDashBin "review" '' exec ${pkgs.mpv}/bin/mpv --no-config --script=${delete} --script=${good} "$@" ''; in pkgs.stdenv.mkDerivation { name = "youtube-tools"; buildInputs = [ review ]; }