{ stdenv, pkgs, fetchurl, lib, unzip, makeWrapper, ... }:

stdenv.mkDerivation {
  pname = "mioctl";
  version = "latest";

  src = fetchurl {
    url = "https://codeberg.org/pmatilai/mioctl/archive/master.zip";
    sha256 = "sha256-GFCUqao+LC9SgparV1699D72wnD0kZeroyq5DRxdJos=";
  };

  nativeBuildInputs = [ makeWrapper unzip ];

  propagatedBuildInputs = [
    (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
      mido
      python-rtmidi
    ]))
  ];

  unpackPhase = ''
    unzip $src
  '';

  installPhase = ''
    mkdir -p $out/bin

    cp -r mioctl/mioctl $out/bin
  '';

  meta = with lib; {
    homepage = "https://codeberg.org/pmatilai/mioctl";
    description = "linux cli for mioXL in python";
    platforms = platforms.linux;
  };
}
