diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/irc/weechat/scripts')
8 files changed, 220 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix new file mode 100644 index 000000000000..439e0e116141 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix @@ -0,0 +1,17 @@ +{ callPackage, luaPackages, pythonPackages }: + +{ + weechat-xmpp = callPackage ./weechat-xmpp { + inherit (pythonPackages) pydns; + }; + + weechat-matrix-bridge = callPackage ./weechat-matrix-bridge { + inherit (luaPackages) cjson; + }; + + wee-slack = callPackage ./wee-slack { + inherit pythonPackages; + }; + + weechat-autosort = callPackage ./weechat-autosort { }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix new file mode 100644 index 000000000000..280e447cd0a1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix @@ -0,0 +1,39 @@ +{ stdenv, substituteAll, buildEnv, fetchFromGitHub, pythonPackages }: + +stdenv.mkDerivation rec { + name = "wee-slack-${version}"; + version = "2.2.0"; + + src = fetchFromGitHub { + repo = "wee-slack"; + owner = "wee-slack"; + rev = "v${version}"; + sha256 = "1iy70q630cgs7fvk2151fq9519dwxrlqq862sbrwypzr6na6yqpg"; + }; + + patches = [ + (substituteAll { + src = ./libpath.patch; + env = "${buildEnv { + name = "wee-slack-env"; + paths = with pythonPackages; [ websocket_client six ]; + }}/${pythonPackages.python.sitePackages}"; + }) + ]; + + passthru.scripts = [ "wee_slack.py" ]; + + installPhase = '' + mkdir -p $out/share + cp wee_slack.py $out/share/wee_slack.py + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/wee-slack/wee-slack; + license = licenses.mit; + maintainers = with maintainers; [ ma27 ]; + description = '' + A WeeChat plugin for Slack.com. Synchronizes read markers, provides typing notification, search, etc.. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch new file mode 100644 index 000000000000..8887e075f13c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch @@ -0,0 +1,13 @@ +diff --git a/wee_slack.py b/wee_slack.py +index c5c7bc6..23fef2f 100644 +--- a/wee_slack.py ++++ b/wee_slack.py +@@ -25,6 +25,8 @@ try: + except: + from StringIO import StringIO + ++sys.path.append('@env@') ++ + from websocket import create_connection, WebSocketConnectionClosedException + + # hack to make tests possible.. better way? diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix new file mode 100644 index 000000000000..95ae71cc70c3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "weechat-autosort-${version}"; + version = "unstable-2018-01-11"; + + src = fetchFromGitHub { + owner = "de-vri-es"; + repo = "weechat-autosort"; + rev = "35ccd6335afd78ae8a6e050ed971d54c8524e37e"; + sha256 = "1rgws960xys65cd1m529csalcgny87h7fkiwjv1yj9rpqp088z26"; + }; + + passthru.scripts = [ "autosort.py" ]; + installPhase = '' + install -D autosort.py $out/share/autosort.py + ''; + + meta = with stdenv.lib; { + description = "Autosort is a weechat script to automatically or manually keep your buffers sorted"; + homepage = https://github.com/de-vri-es/weechat-autosort; + license = licenses.gpl3; + maintainers = with maintainers; [ ma27 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix new file mode 100644 index 000000000000..d2960ae93a99 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix @@ -0,0 +1,46 @@ +{ stdenv, curl, fetchFromGitHub, cjson, olm, luaffi }: + +stdenv.mkDerivation { + name = "weechat-matrix-bridge-2018-05-29"; + src = fetchFromGitHub { + owner = "torhve"; + repo = "weechat-matrix-protocol-script"; + rev = "ace3fefc0e35a627f8a528032df2e3111e41eb1b"; + sha256 = "1snf8vn5n9wzrnqnvdrcli4199s5p114jbjlgrj5c27i53173wqw"; + }; + + patches = [ + ./library-path.patch + ]; + + buildInputs = [ curl cjson olm luaffi ]; + + postPatch = '' + substituteInPlace matrix.lua \ + --replace "/usr/bin/curl" "${curl}/bin/curl" \ + --replace "__NIX_LIB_PATH__" "$out/lib/?.so" \ + --replace "__NIX_OLM_PATH__" "$out/share/?.lua" + + substituteInPlace olm.lua \ + --replace "__NIX_LIB_PATH__" "$out/lib/?.so" + ''; + + passthru.scripts = [ "matrix.lua" ]; + + installPhase = '' + mkdir -p $out/{share,lib} + + cp {matrix.lua,olm.lua} $out/share + cp ${cjson}/lib/lua/5.2/cjson.so $out/lib/cjson.so + cp ${olm}/lib/libolm.so $out/lib/libolm.so + cp ${luaffi}/lib/ffi.so $out/lib/ffi.so + ''; + + meta = with stdenv.lib; { + description = "A WeeChat script in Lua that implements the matrix.org chat protocol"; + homepage = https://github.com/torhve/weechat-matrix-protocol-script; + maintainers = with maintainers; [ ma27 ]; + license = licenses.mit; # see https://github.com/torhve/weechat-matrix-protocol-script/blob/0052e7275ae149dc5241226391c9b1889ecc3c6b/matrix.lua#L53 + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch new file mode 100644 index 000000000000..d9945c2993b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch @@ -0,0 +1,28 @@ +diff --git a/matrix.lua b/matrix.lua +index b79f500..32b37a2 100644 +--- a/matrix.lua ++++ b/matrix.lua +@@ -43,6 +43,9 @@ This script maps this as follows: + + ]] + ++package.cpath = package.cpath .. ";__NIX_LIB_PATH__" ++package.path = package.path .. ";__NIX_OLM_PATH__" ++ + local json = require 'cjson' -- apt-get install lua-cjson + local olmstatus, olm = pcall(require, 'olm') -- LuaJIT olm FFI binding ln -s ~/olm/olm.lua /usr/local/share/lua/5.1 + local w = weechat +diff --git a/olm.lua b/olm.lua +index 114649c..4828371 100644 +--- a/olm.lua ++++ b/olm.lua +@@ -17,6 +17,9 @@ + * limitations under the License. + */ + --]] ++ ++package.cpath = package.cpath .. ";__NIX_LIB_PATH__" ++ + local ffi = require'ffi' + + ffi.cdef[[ diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix new file mode 100644 index 000000000000..dad5b9c5e02a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, xmpppy, pydns, substituteAll, buildEnv }: + +stdenv.mkDerivation { + name = "weechat-jabber-2017-08-30"; + + src = fetchFromGitHub { + repo = "weechat-xmpp"; + owner = "sleduc"; + sha256 = "0s02xs0ynld9cxxzj07al364sfglyc5ir1i82133mq0s8cpphnxv"; + rev = "8f6c21f5a160c9318c7a2d8fd5dcac7ab2e0d843"; + }; + + installPhase = '' + mkdir -p $out/share + cp jabber.py $out/share/jabber.py + ''; + + patches = [ + (substituteAll { + src = ./libpath.patch; + env = "${buildEnv { + name = "weechat-xmpp-env"; + paths = [ pydns xmpppy ]; + }}/lib/python2.7/site-packages"; + }) + ]; + + passthru.scripts = [ "jabber.py" ]; + + meta = with stdenv.lib; { + description = "A fork of the jabber plugin for weechat"; + homepage = "https://github.com/sleduc/weechat-xmpp"; + maintainers = with maintainers; [ ma27 ]; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch new file mode 100644 index 000000000000..372c83944a27 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch @@ -0,0 +1,16 @@ +diff --git a/jabber.py b/jabber.py +index 27006a3..e53c2c0 100644 +--- a/jabber.py ++++ b/jabber.py +@@ -95,6 +95,11 @@ SCRIPT_COMMAND = SCRIPT_NAME + import re + import warnings + ++import sys ++ ++sys.path.append('@env@') ++ ++ + import_ok = True + + try: |