From 71f3532e04e5c76327363a3fd36b506f54e5043d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Sat, 21 Nov 2015 22:47:52 +0100 Subject: [PATCH] degesch: add the first Lua plugin to distribution This required separate plugin directories for both pluginized executables. --- CMakeLists.txt | 11 ++++++----- config.h.in | 2 +- plugins/degesch/ping-timeout.lua | 33 ++++++++++++++++++++++++++++++++ plugins/{ => zyklonb}/coin | 0 plugins/{ => zyklonb}/eval | 0 plugins/{ => zyklonb}/pomodoro | 0 plugins/{ => zyklonb}/script | 0 plugins/{ => zyklonb}/youtube | 0 zyklonb.c | 1 + 9 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 plugins/degesch/ping-timeout.lua rename plugins/{ => zyklonb}/coin (100%) rename plugins/{ => zyklonb}/eval (100%) rename plugins/{ => zyklonb}/pomodoro (100%) rename plugins/{ => zyklonb}/script (100%) rename plugins/{ => zyklonb}/youtube (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 64bb667..2e8a2f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,7 +94,8 @@ set (HAVE_EDITLINE "${WANT_LIBEDIT}") set (HAVE_LUA "${WITH_LUA}") include (GNUInstallDirs) -set (plugin_dir ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}) +# ZyklonB is currently an odd duck but degesch follows normal XDG rules +set (zyklonb_plugin_dir ${CMAKE_INSTALL_LIBDIR}/zyklonb/plugins) configure_file (${PROJECT_SOURCE_DIR}/config.h.in ${PROJECT_BINARY_DIR}/config.h) include_directories (${PROJECT_SOURCE_DIR} ${PROJECT_BINARY_DIR}) @@ -138,10 +139,10 @@ add_custom_target (clang-tidy # Installation install (TARGETS zyklonb degesch kike DESTINATION ${CMAKE_INSTALL_BINDIR}) install (FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) - -foreach (plugin coin eval script youtube ${plugins}) - install (FILES plugins/${plugin} DESTINATION ${plugin_dir}) -endforeach (plugin) +install (DIRECTORY plugins/zyklonb/ + DESTINATION ${zyklonb_plugin_dir} USE_SOURCE_PERMISSIONS) +install (DIRECTORY plugins/degesch/ + DESTINATION ${CMAKE_INSTALL_DATADIR}/degesch/plugins) # Generate documentation from program help find_program (HELP2MAN_EXECUTABLE help2man) diff --git a/config.h.in b/config.h.in index 833f874..0ad9559 100644 --- a/config.h.in +++ b/config.h.in @@ -2,7 +2,7 @@ #define CONFIG_H #define PROGRAM_VERSION "${project_VERSION}" -#define PLUGIN_DIR "${CMAKE_INSTALL_PREFIX}/${plugin_dir}" +#define ZYKLONB_PLUGIN_DIR "${CMAKE_INSTALL_PREFIX}/${zyklonb_plugin_dir}" #cmakedefine HAVE_READLINE #cmakedefine HAVE_EDITLINE diff --git a/plugins/degesch/ping-timeout.lua b/plugins/degesch/ping-timeout.lua new file mode 100644 index 0000000..72a754f --- /dev/null +++ b/plugins/degesch/ping-timeout.lua @@ -0,0 +1,33 @@ +-- +-- ping-timeout.lua: ping timeout readability enhancement plugin +-- +-- Copyright (c) 2015, Přemysl Janouch +-- +-- Permission to use, copy, modify, and/or distribute this software for any +-- purpose with or without fee is hereby granted, provided that the above +-- copyright notice and this permission notice appear in all copies. +-- +-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +-- SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +-- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +-- OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +-- CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-- + +degesch.hook_irc (function (hook, server, line) + local start, timeout = + line:match ("^(:[^ ]* QUIT :Ping timeout:) (%d+) seconds$") + if not start then + return line + end + + local minutes = timeout // 60 + if minutes == 0 then + return line + end + + local seconds = timeout % 60 + return string.format ("%s %d minutes, %d seconds", start, minutes, seconds) +end) diff --git a/plugins/coin b/plugins/zyklonb/coin similarity index 100% rename from plugins/coin rename to plugins/zyklonb/coin diff --git a/plugins/eval b/plugins/zyklonb/eval similarity index 100% rename from plugins/eval rename to plugins/zyklonb/eval diff --git a/plugins/pomodoro b/plugins/zyklonb/pomodoro similarity index 100% rename from plugins/pomodoro rename to plugins/zyklonb/pomodoro diff --git a/plugins/script b/plugins/zyklonb/script similarity index 100% rename from plugins/script rename to plugins/zyklonb/script diff --git a/plugins/youtube b/plugins/zyklonb/youtube similarity index 100% rename from plugins/youtube rename to plugins/zyklonb/youtube diff --git a/zyklonb.c b/zyklonb.c index 13a68e3..053130a 100644 --- a/zyklonb.c +++ b/zyklonb.c @@ -19,6 +19,7 @@ #include "config.h" #define PROGRAM_NAME "ZyklonB" +#define PLUGIN_DIR ZYKLONB_PLUGIN_DIR #include "common.c"