nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
2021-03-16 16:13:34 +01:00

416 lines
12 KiB
Nix

{ pkgs }:
with pkgs;
self: super: let
buildPlugin = args: self.buildPythonPackage (args // {
pname = "OctoPrintPlugin-${args.pname}";
inherit (args) version;
propagatedBuildInputs = (args.propagatedBuildInputs or []) ++ [ super.octoprint ];
# none of the following have tests
doCheck = false;
});
in {
inherit buildPlugin;
m86motorsoff = buildPlugin rec {
pname = "M84MotorsOff";
version = "0.1.0";
src = fetchFromGitHub {
owner = "ntoff";
repo = "Octoprint-M84MotOff";
rev = "v${version}";
sha256 = "1w6h4hia286lbz2gy33rslq02iypx067yqn413xcipb07ivhvdq7";
};
meta = with lib; {
description = "Changes the \"Motors off\" button in octoprint's control tab to issue an M84 command to allow compatibility with Repetier firmware Resources";
homepage = "https://github.com/ntoff/OctoPrint-M84MotOff";
license = licenses.agpl3Only;
maintainers = with maintainers; [ stunkymonkey ];
};
};
abl-expert = buildPlugin rec {
pname = "ABL_Expert";
version = "0.6";
src = fetchgit {
url = "https://framagit.org/razer/Octoprint_ABL_Expert/";
rev = version;
sha256 = "0ij3rvdwya1sbymwm5swlh2j4jagb6fal945g88zrzh5xf26hzjh";
};
meta = with lib; {
description = "Marlin auto bed leveling control, mesh correction, and z probe handling";
homepage = "https://framagit.org/razer/Octoprint_ABL_Expert/";
license = licenses.agpl3;
maintainers = with maintainers; [ WhittlesJr ];
};
};
bedlevelvisualizer = buildPlugin rec {
pname = "BedLevelVisualizer";
version = "0.1.15";
src = fetchFromGitHub {
owner = "jneilliii";
repo = "OctoPrint-${pname}";
rev = version;
sha256 = "1bq39fnarnpk8phxfbpx6l4n9anf358z1cgid5r89nadmn2a0cny";
};
propagatedBuildInputs = with super; [ numpy ];
meta = with lib; {
description = "Displays 3D mesh of bed topography report";
homepage = "https://github.com/jneilliii/OctoPrint-BedLevelVisualizer";
license = licenses.agpl3;
maintainers = with maintainers; [ lovesegfault ];
};
};
costestimation = buildPlugin rec {
pname = "CostEstimation";
version = "3.2.0";
src = fetchFromGitHub {
owner = "OllisGit";
repo = "OctoPrint-${pname}";
rev = version;
sha256 = "1j476jcw7gh8zqqdc5vddwv5wpjns7cd1hhpn7m9fxq3d5bi077w";
};
meta = with lib; {
description = "Plugin to display the estimated print cost for the loaded model.";
homepage = "https://github.com/malnvenshorn/OctoPrint-CostEstimation";
license = licenses.agpl3Only;
maintainers = with maintainers; [ stunkymonkey ];
};
};
curaenginelegacy = buildPlugin rec {
pname = "CuraEngineLegacy";
version = "1.1.1";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-${pname}";
rev = version;
sha256 = "1a7pxlmj1a7blkv97sn1k390pbjcxx2860011pbjcdnli74zpvv5";
};
meta = with lib; {
description = "Plugin for slicing via Cura Legacy from within OctoPrint";
homepage = "https://github.com/OctoPrint/OctoPrint-CuraEngineLegacy";
license = licenses.agpl3;
maintainers = with maintainers; [ gebner ];
};
};
displayprogress = buildPlugin rec {
pname = "DisplayProgress";
version = "0.1.3";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-${pname}";
rev = version;
sha256 = "080prvfwggl4vkzyi369vxh1n8231hrl8a44f399laqah3dn5qw4";
};
meta = with lib; {
description = "Displays the job progress on the printer's display";
homepage = "https://github.com/OctoPrint/OctoPrint-DisplayProgress";
license = licenses.agpl3Only;
maintainers = with maintainers; [ stunkymonkey ];
};
};
displaylayerprogress = buildPlugin rec {
pname = "OctoPrint-DisplayLayerProgress";
version = "1.24.0";
src = fetchFromGitHub {
owner = "OllisGit";
repo = pname;
rev = version;
sha256 = "1lbivg3rcjzv8zqvp8n8gcaczxdm7gvd5ihjb6jq0fgf958lv59n";
};
meta = with lib; {
description = "OctoPrint-Plugin that sends the current progress of a print via M117 command";
homepage = "https://github.com/OllisGit/OctoPrint-DisplayLayerProgress";
license = licenses.agpl3;
maintainers = with maintainers; [ j0hax ];
};
};
gcodeeditor = buildPlugin rec {
pname = "GcodeEditor";
version = "0.2.9";
src = fetchFromGitHub {
owner = "ieatacid";
repo = "OctoPrint-${pname}";
rev = version;
sha256 = "1yjj9lmxbzmzrn7gahw9lj7554fphalbjjp8ns0rr9py3rshwxkm";
};
meta = with lib; {
description = "Edit gcode on OctoPrint";
homepage = "https://github.com/ieatacid/OctoPrint-GcodeEditor";
license = licenses.agpl3;
maintainers = with maintainers; [ WhittlesJr ];
};
};
marlingcodedocumentation = buildPlugin rec {
pname = "MarlinGcodeDocumentation";
version = "0.11.0";
src = fetchFromGitHub {
owner = "costas-basdekis";
repo = pname;
rev = "v${version}";
sha256 = "0vx06w9hqwy0k4r8g67y8gdckfdx7wl8ghfx6hmxc1s8fgkghfkc";
};
meta = with lib; {
description = "Displays GCode documentation for Marlin in the Octoprint terminal command line";
homepage = "https://github.com/costas-basdekis/MarlinGcodeDocumentation";
license = licenses.agpl3;
maintainers = with maintainers; [ lovesegfault ];
};
};
mqtt = buildPlugin rec {
pname = "MQTT";
version = "0.8.7";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-MQTT";
rev = version;
sha256 = "0k82h7wafbcqdvk5wjw4dp9lydwszfj1lf8vvymwbqdn7pf5h0dy";
};
propagatedBuildInputs = with super; [ paho-mqtt ];
meta = with lib; {
description = "Publish printer status MQTT";
homepage = "https://github.com/OctoPrint/OctoPrint-MQTT";
license = licenses.agpl3;
maintainers = with maintainers; [ peterhoeg ];
};
};
printtimegenius = buildPlugin rec {
pname = "PrintTimeGenius";
version = "2.2.6";
src = fetchFromGitHub {
owner = "eyal0";
repo = "OctoPrint-${pname}";
rev = version;
sha256 = "04zfgd3x3lbriyzwhpqnwdcfdm19fsqgsb7l2ix5d0ssmqxwg2r6";
};
preConfigure = ''
# PrintTimeGenius ships with marlin-calc binaries for multiple architectures
rm */analyzers/marlin-calc*
sed 's@"{}.{}".format(binary_base_name, machine)@"${pkgs.marlin-calc}/bin/marlin-calc"@' -i */analyzers/analyze_progress.py
'';
patches = [
./printtimegenius-logging.patch
];
meta = with lib; {
description = "Better print time estimation for OctoPrint";
homepage = "https://github.com/eyal0/OctoPrint-PrintTimeGenius";
license = licenses.agpl3;
maintainers = with maintainers; [ gebner ];
};
};
psucontrol = buildPlugin rec {
pname = "PSUControl";
version = "0.1.9";
src = fetchFromGitHub {
owner = "kantlivelong";
repo = "OctoPrint-${pname}";
rev = version;
sha256 = "1cn009bdgn6c9ba9an5wfj8z02wi0xcsmbhkqggiqlnqy1fq45ca";
};
preConfigure = ''
# optional; RPi.GPIO is broken on vanilla kernels
sed /RPi.GPIO/d -i requirements.txt
'';
meta = with lib; {
description = "OctoPrint plugin to control ATX/AUX power supply";
homepage = "https://github.com/kantlivelong/OctoPrint-PSUControl";
license = licenses.agpl3;
maintainers = with maintainers; [ gebner ];
};
};
simpleemergencystop = buildPlugin rec {
pname = "SimpleEmergencyStop";
version = "1.0.3";
src = fetchFromGitHub {
owner = "Sebclem";
repo = "OctoPrint-${pname}";
rev = version;
sha256 = "0hhh5grmn32abkix1b9fr1d0pcpdi2r066iypcxdxcza9qzwjiyi";
};
meta = with lib; {
description = "A simple plugin that add an emergency stop buton on NavBar of OctoPrint";
homepage = "https://github.com/Sebclem/OctoPrint-SimpleEmergencyStop";
license = licenses.agpl3;
maintainers = with maintainers; [ WhittlesJr ];
};
};
stlviewer = buildPlugin rec {
pname = "STLViewer";
version = "0.4.2";
src = fetchFromGitHub {
owner = "jneilliii";
repo = "OctoPrint-STLViewer";
rev = version;
sha256 = "0mkvh44fn2ch4z2avsdjwi1rp353ylmk9j5fln4x7rx8ph8y7g2b";
};
meta = with lib; {
description = "A simple stl viewer tab for OctoPrint";
homepage = "https://github.com/jneilliii/Octoprint-STLViewer";
license = licenses.agpl3;
maintainers = with maintainers; [ abbradar ];
};
};
telegram = buildPlugin rec {
pname = "Telegram";
version = "1.6.4";
src = fetchFromGitHub {
owner = "fabianonline";
repo = "OctoPrint-${pname}";
rev = version;
sha256 = "14d9f9a5m1prcikd7y26qks6c2ls6qq4b97amn24q5a8k5hbgl94";
};
propagatedBuildInputs = with super; [ pillow ];
meta = with lib; {
description = "Plugin to send status messages and receive commands via Telegram messenger.";
homepage = "https://github.com/fabianonline/OctoPrint-Telegram";
license = licenses.agpl3Only;
maintainers = with maintainers; [ stunkymonkey ];
};
};
themeify = buildPlugin rec {
pname = "Themeify";
version = "1.2.2";
src = fetchFromGitHub {
owner = "Birkbjo";
repo = "Octoprint-${pname}";
rev = "v${version}";
sha256 = "0j1qs6kyh947npdy7pqda25fjkqinpas3sy0qyscqlxi558lhvx2";
};
meta = with lib; {
description = "Beautiful themes for OctoPrint";
homepage = "https://github.com/birkbjo/OctoPrint-Themeify";
license = licenses.agpl3;
maintainers = with maintainers; [ lovesegfault ];
};
};
titlestatus = buildPlugin rec {
pname = "TitleStatus";
version = "0.0.5";
src = fetchFromGitHub {
owner = "MoonshineSG";
repo = "OctoPrint-TitleStatus";
rev = version;
sha256 = "10nxjrixg0i6n6x8ghc1ndshm25c97bvkcis5j9kmlkkzs36i2c6";
};
meta = with lib; {
description = "Show printers status in window title";
homepage = "https://github.com/MoonshineSG/OctoPrint-TitleStatus";
license = licenses.agpl3;
maintainers = with maintainers; [ abbradar ];
};
};
touchui = buildPlugin rec {
pname = "TouchUI";
version = "0.3.16";
src = fetchFromGitHub {
owner = "BillyBlaze";
repo = "OctoPrint-${pname}";
rev = version;
sha256 = "1jlqjirc4ygl4k7jp93l2h6b18jap3mzz8sf2g61j9w0kgv9l365";
};
meta = with lib; {
description = "Touch friendly interface for a small TFT module or phone for OctoPrint";
homepage = "https://github.com/BillyBlaze/OctoPrint-TouchUI";
license = licenses.agpl3;
maintainers = with maintainers; [ gebner ];
};
};
octoklipper = buildPlugin rec {
pname = "OctoKlipper";
version = "0.3.2";
src = fetchFromGitHub {
owner = "AliceGrey";
repo = "OctoprintKlipperPlugin";
rev = version;
sha256 = "15yg2blbgqp2gdpsqqm8qiiznq5qaq8wss07jimkl0865vrvlz7l";
};
meta = with lib; {
description = "A plugin for a better integration of Klipper into OctoPrint";
homepage = "https://github.com/AliceGrey/OctoprintKlipperPlugin";
license = licenses.agpl3;
maintainers = with maintainers; [ lovesegfault ];
};
};
octoprint-dashboard = buildPlugin rec {
pname = "OctoPrint-Dashboard";
version = "1.15.2";
src = fetchFromGitHub {
owner = "StefanCohen";
repo = pname;
rev = version;
sha256 = "0p94jwd7kagh3sixhcrqmsgbay4aaf9l1pgyi2b45jym8pvld5n4";
};
meta = with lib; {
description = "A dashboard for Octoprint";
homepage = "https://github.com/StefanCohen/OctoPrint-Dashboard";
license = licenses.agpl3;
maintainers = with maintainers; [ j0hax ];
};
};
}