From 5ad9608ab4c8e828ea979377ce94066a3f7ddccb Mon Sep 17 00:00:00 2001 From: Tom Feist Date: Sat, 24 Jul 2010 19:04:17 +0100 Subject: moved testing stuff to a signle dir --- history-search/irssi/config | 290 -------------------------------- history-search/irssi/default.theme | 294 --------------------------------- history-search/irssi/scripts | 1 - history-search/run_irssi.sh | 2 - scrolled-reminder/scrolled-reminder.pl | 65 -------- scrolled-reminder/scrolled_reminder.pl | 67 ++++++++ test/.gitignore | 1 + test/build_links.pl | 58 +++++++ test/irssi/config | 290 ++++++++++++++++++++++++++++++++ test/irssi/default.theme | 294 +++++++++++++++++++++++++++++++++ test/run_irssi.sh | 2 + 11 files changed, 712 insertions(+), 652 deletions(-) delete mode 100644 history-search/irssi/config delete mode 100644 history-search/irssi/default.theme delete mode 120000 history-search/irssi/scripts delete mode 100755 history-search/run_irssi.sh delete mode 100644 scrolled-reminder/scrolled-reminder.pl create mode 100644 scrolled-reminder/scrolled_reminder.pl create mode 100644 test/.gitignore create mode 100755 test/build_links.pl create mode 100644 test/irssi/config create mode 100644 test/irssi/default.theme create mode 100755 test/run_irssi.sh diff --git a/history-search/irssi/config b/history-search/irssi/config deleted file mode 100644 index 6b46771..0000000 --- a/history-search/irssi/config +++ /dev/null @@ -1,290 +0,0 @@ -servers = ( - { address = "eu.irc6.net"; chatnet = "IRCnet"; port = "6667"; }, - { - address = "irc.open-ircnet.net"; - chatnet = "IRCnet"; - port = "6667"; - }, - { address = "irc.efnet.org"; chatnet = "EFNet"; port = "6667"; }, - { - address = "irc.undernet.org"; - chatnet = "Undernet"; - port = "6667"; - }, - { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; }, - { - address = "irc.quakenet.org"; - chatnet = "QuakeNet"; - port = "6667"; - }, - { address = "irc.oftc.net"; chatnet = "OFTC"; port = "6667"; }, - { - address = "irc.gamesurge.net"; - chatnet = "GameSurge"; - port = "6667"; - }, - { address = "irc.webchat.org"; chatnet = "WebChat"; port = "6667"; }, - { address = "irc.rizon.net"; chatnet = "Rizon"; port = "6667"; }, - { address = "irc.link-net.org"; chatnet = "LinkNet"; port = "6667"; }, - { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; } -); - -chatnets = { - IRCnet = { - type = "IRC"; - max_kicks = "4"; - max_msgs = "5"; - max_whois = "4"; - max_query_chans = "5"; - }; - EFNet = { - type = "IRC"; - max_kicks = "4"; - max_msgs = "3"; - max_whois = "1"; - }; - Undernet = { - type = "IRC"; - max_kicks = "1"; - max_msgs = "3"; - max_whois = "30"; - }; - DALnet = { - type = "IRC"; - max_kicks = "4"; - max_msgs = "3"; - max_whois = "30"; - }; - QuakeNet = { - type = "IRC"; - max_kicks = "1"; - max_msgs = "3"; - max_whois = "30"; - }; - OFTC = { - type = "IRC"; - max_kicks = "1"; - max_msgs = "3"; - max_whois = "30"; - }; - GameSurge = { - type = "IRC"; - max_kicks = "1"; - max_msgs = "3"; - max_whois = "30"; - }; - WebChat = { - type = "IRC"; - max_kicks = "1"; - max_msgs = "3"; - max_whois = "30"; - }; - Rizon = { - type = "IRC"; - max_kicks = "1"; - max_msgs = "3"; - max_whois = "30"; - }; - LinkNet = { - type = "IRC"; - max_kicks = "1"; - max_msgs = "3"; - max_whois = "30"; - }; - SILC = { type = "SILC"; }; -}; - -channels = ( - { name = "#irssi"; chatnet = "ircnet"; autojoin = "No"; }, - { name = "silc"; chatnet = "silc"; autojoin = "No"; } -); - -aliases = { - J = "join"; - WJOIN = "join -window"; - WQUERY = "query -window"; - LEAVE = "part"; - BYE = "quit"; - EXIT = "quit"; - SIGNOFF = "quit"; - DESCRIBE = "action"; - DATE = "time"; - HOST = "userhost"; - LAST = "lastlog"; - SAY = "msg *"; - WI = "whois"; - WII = "whois $0 $0"; - WW = "whowas"; - W = "who"; - N = "names"; - M = "msg"; - T = "topic"; - C = "clear"; - CL = "clear"; - K = "kick"; - KB = "kickban"; - KN = "knockout"; - BANS = "ban"; - B = "ban"; - MUB = "unban *"; - UB = "unban"; - IG = "ignore"; - UNIG = "unignore"; - SB = "scrollback"; - UMODE = "mode $N"; - WC = "window close"; - WN = "window new hide"; - SV = "say Irssi $J ($V) - http://irssi.org/"; - GOTO = "sb goto"; - CHAT = "dcc chat"; - RUN = "SCRIPT LOAD"; - CALC = "exec - if which bc &>/dev/null\\; then echo '$*' | bc | awk '{print \"$*=\"$$1}'\\; else echo bc was not found\\; fi"; - SBAR = "STATUSBAR"; - INVITELIST = "mode $C +I"; - Q = "QUERY"; - "MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save"; - EXEMPTLIST = "mode $C +e"; - ATAG = "WINDOW SERVER"; - UNSET = "set -clear"; - RESET = "set -default"; - s = "script"; - rltest = "/script unload history_search; /script load history_search.pl"; - DUMP = "script exec use Data::Dumper\\; print Data::Dumper->new([\\\\$0-])->Dump"; - funcs_for = "/dump [map *\\$_{NAME}, grep ref(\\$_) eq 'GLOB' && *\\$_{CODE} && *\\$_{PACKAGE} eq 'Irssi::UI::Window', values \\%Irssi::UI::Window::]"; - et = "/script unload expando_test.pl; /script load expando_test"; - se = "script exec"; -}; - -statusbar = { - # formats: - # when using {templates}, the template is shown only if it's argument isn't - # empty unless no argument is given. for example {sb} is printed always, - # but {sb $T} is printed only if $T isn't empty. - - items = { - # start/end text in statusbars - barstart = "{sbstart}"; - barend = "{sbend}"; - - topicbarstart = "{topicsbstart}"; - topicbarend = "{topicsbend}"; - - # treated "normally", you could change the time/user name to whatever - time = "{sb $Z}"; - user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}"; - - # treated specially .. window is printed with non-empty windows, - # window_empty is printed with empty windows - window = "{sb $winref:$tag/$itemname{sbmode $M}}"; - window_empty = "{sb $winref{sbservertag $tag}}"; - prompt = "{prompt $[.15]itemname}"; - prompt_empty = "{prompt $winname}"; - topic = " $topic"; - topic_empty = " Irssi v$J - http://www.irssi.org"; - - # all of these treated specially, they're only displayed when needed - lag = "{sb Lag: $0-}"; - act = "{sb Act: $0-}"; - more = "-- more --"; - }; - - # there's two type of statusbars. root statusbars are either at the top - # of the screen or at the bottom of the screen. window statusbars are at - # the top/bottom of each split window in screen. - default = { - # the "default statusbar" to be displayed at the bottom of the window. - # contains all the normal items. - window = { - disabled = "no"; - - # window, root - type = "window"; - # top, bottom - placement = "bottom"; - # number - position = "1"; - # active, inactive, always - visible = "active"; - - # list of items in statusbar in the display order - items = { - barstart = { priority = "100"; }; - time = { }; - user = { }; - window = { }; - window_empty = { }; - lag = { priority = "-1"; }; - act = { priority = "10"; }; - more = { priority = "-1"; alignment = "right"; }; - barend = { priority = "100"; alignment = "right"; }; - }; - }; - - # statusbar to use in inactive split windows - window_inact = { - type = "window"; - placement = "bottom"; - position = "1"; - visible = "inactive"; - items = { - barstart = { priority = "100"; }; - window = { }; - window_empty = { }; - more = { priority = "-1"; alignment = "right"; }; - barend = { priority = "100"; alignment = "right"; }; - }; - }; - - # we treat input line as yet another statusbar :) It's possible to - # add other items before or after the input line item. - - # topicbar - topic = { - type = "root"; - placement = "top"; - position = "1"; - visible = "always"; - items = { - topicbarstart = { priority = "100"; }; - topic = { }; - topic_empty = { }; - topicbarend = { priority = "100"; alignment = "right"; }; - }; - }; - prompt = { - items = { - prompt = { }; - prompt_empty = { }; - input = { priority = "10"; }; - }; - }; - promptadd = { disabled = "yes"; }; - }; -}; -settings = { - core = { - real_name = "shabble"; - user_name = "tomfeist"; - nick = "tomfeist"; - }; - "fe-text" = { actlist_sort = "refnum"; }; - "perl/core/scripts" = { autoinstall_custom_prompt = "yes"; }; - "fe-common/core" = { bell_beeps = "yes"; }; -}; -keyboard = ( - { - key = "meta-g"; - id = "command"; - data = "se print defined(Irssi::gui_input_set(\"hello\"))?1:0"; - }, - { key = "meta-x"; id = "command"; data = "history_search "; }, - { - key = "M-g"; - id = "command"; - data = "se print defined(Irssi::gui_input_set(\"hello\"))?1:0"; - }, - { key = "^Z"; id = "command"; data = "echo moo"; }, - { key = "^O"; id = "command"; data = "echo moo"; }, - { key = "^o"; id = "command"; data = "echo moo"; }, - { key = "^R"; id = "command"; data = "history_search_start "; } -); diff --git a/history-search/irssi/default.theme b/history-search/irssi/default.theme deleted file mode 100644 index 357a98e..0000000 --- a/history-search/irssi/default.theme +++ /dev/null @@ -1,294 +0,0 @@ -# When testing changes, the easiest way to reload the theme is with /RELOAD. -# This reloads the configuration file too, so if you did any changes remember -# to /SAVE it first. Remember also that /SAVE overwrites the theme file with -# old data so keep backups :) - -# TEMPLATES: - -# The real text formats that irssi uses are the ones you can find with -# /FORMAT command. Back in the old days all the colors and texts were mixed -# up in those formats, and it was really hard to change the colors since you -# might have had to change them in tens of different places. So, then came -# this templating system. - -# Now the /FORMATs don't have any colors in them, and they also have very -# little other styling. Most of the stuff you need to change is in this -# theme file. If you can't change something here, you can always go back -# to change the /FORMATs directly, they're also saved in these .theme files. - -# So .. the templates. They're those {blahblah} parts you see all over the -# /FORMATs and here. Their usage is simply {name parameter1 parameter2}. -# When irssi sees this kind of text, it goes to find "name" from abstracts -# block below and sets "parameter1" into $0 and "parameter2" into $1 (you -# can have more parameters of course). Templates can have subtemplates. -# Here's a small example: -# /FORMAT format hello {colorify {underline world}} -# abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; } -# When irssi expands the templates in "format", the final string would be: -# hello %G%Uworld%U%n -# ie. underlined bright green "world" text. -# and why "$0-", why not "$0"? $0 would only mean the first parameter, -# $0- means all the parameters. With {underline hello world} you'd really -# want to underline both of the words, not just the hello (and world would -# actually be removed entirely). - -# COLORS: - -# You can find definitions for the color format codes in docs/formats.txt. - -# There's one difference here though. %n format. Normally it means the -# default color of the terminal (white mostly), but here it means the -# "reset color back to the one it was in higher template". For example -# if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would -# print yellow "foo" (as set with %Y) but "bar" would be green, which was -# set at the beginning before the {foo} template. If there wasn't the %g -# at start, the normal behaviour of %n would occur. If you _really_ want -# to use the terminal's default color, use %N. - -############################################################################# - -# default foreground color (%N) - -1 is the "default terminal color" -default_color = "-1"; - -# print timestamp/servertag at the end of line, not at beginning -info_eol = "false"; - -# these characters are automatically replaced with specified color -# (dark grey by default) -replaces = { "[]=" = "%K$*%n"; }; - -abstracts = { - ## - ## generic - ## - - # text to insert at the beginning of each non-message line - line_start = "%B-%W!%B-%n "; - - # timestamp styling, nothing by default - timestamp = "[[[$*]]]"; - - # any kind of text that needs hilighting, default is to bold - hilight = "%_$*%_"; - - # any kind of error message, default is bright red - error = "%R$*%n"; - - # channel name is printed - channel = "%_$*%_"; - - # nick is printed - nick = "%_$*%_"; - - # nick host is printed - nickhost = "[$*]"; - - # server name is printed - server = "%_$*%_"; - - # some kind of comment is printed - comment = "[$*]"; - - # reason for something is printed (part, quit, kick, ..) - reason = "{comment $*}"; - - # mode change is printed ([+o nick]) - mode = "{comment $*}"; - - ## - ## channel specific messages - ## - - # highlighted nick/host is printed (joins) - channick_hilight = "%C$*%n"; - chanhost_hilight = "{nickhost %c$*%n}"; - - # nick/host is printed (parts, quits, etc.) - channick = "%c$*%n"; - chanhost = "{nickhost $*}"; - - # highlighted channel name is printed - channelhilight = "%c$*%n"; - - # ban/ban exception/invite list mask is printed - ban = "%c$*%n"; - - ## - ## messages - ## - - # the basic styling of how to print message, $0 = nick mode, $1 = nick - msgnick = "%K<%n$0$1-%K>%n %|"; - - # message from you is printed. "msgownnick" specifies the styling of the - # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the - # whole line. - - # Example1: You want the message text to be green: - # ownmsgnick = "{msgnick $0 $1-}%g"; - # Example2.1: You want < and > chars to be yellow: - # ownmsgnick = "%Y{msgnick $0 $1-%Y}%n"; - # (you'll also have to remove <> from replaces list above) - # Example2.2: But you still want to keep <> grey for other messages: - # pubmsgnick = "%K{msgnick $0 $1-%K}%n"; - # pubmsgmenick = "%K{msgnick $0 $1-%K}%n"; - # pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n"; - # ownprivmsgnick = "%K{msgnick $*%K}%n"; - # privmsgnick = "%K{msgnick %R$*%K}%n"; - - # $0 = nick mode, $1 = nick - ownmsgnick = "{msgnick $0 $1-}"; - ownnick = "%W$*%n"; - - # public message in channel, $0 = nick mode, $1 = nick - pubmsgnick = "{msgnick $0 $1-}"; - pubnick = "%N$*%n"; - - # public message in channel meant for me, $0 = nick mode, $1 = nick - pubmsgmenick = "{msgnick $0 $1-}"; - menick = "%Y$*%n"; - - # public highlighted message in channel - # $0 = highlight color, $1 = nick mode, $2 = nick - pubmsghinick = "{msgnick $1 $0$2-%n}"; - - # channel name is printed with message - msgchannel = "%K:%c$*%n"; - - # private message, $0 = nick, $1 = host - privmsg = "[%R$0%K(%r$1-%K)%n] "; - - # private message from you, $0 = "msg", $1 = target nick - ownprivmsg = "[%r$0%K(%R$1-%K)%n] "; - - # own private message in query - ownprivmsgnick = "{msgnick $*}"; - ownprivnick = "%W$*%n"; - - # private message in query - privmsgnick = "{msgnick %R$*%n}"; - - ## - ## Actions (/ME stuff) - ## - - # used internally by this theme - action_core = "%W * $*%n"; - - # generic one that's used by most actions - action = "{action_core $*} "; - - # own action, both private/public - ownaction = "{action $*}"; - - # own action with target, both private/public - ownaction_target = "{action_core $0}%K:%c$1%n "; - - # private action sent by others - pvtaction = "%W (*) $*%n "; - pvtaction_query = "{action $*}"; - - # public action sent by others - pubaction = "{action $*}"; - - - ## - ## other IRC events - ## - - # whois - whois = "%# $[8]0 : $1-"; - - # notices - ownnotice = "[%r$0%K(%R$1-%K)]%n "; - notice = "%K-%M$*%K-%n "; - pubnotice_channel = "%K:%m$*"; - pvtnotice_host = "%K(%m$*%K)"; - servernotice = "%g!$*%n "; - - # CTCPs - ownctcp = "[%r$0%K(%R$1-%K)] "; - ctcp = "%g$*%n"; - - # wallops - wallop = "%W$*%n: "; - wallop_nick = "%n$*"; - wallop_action = "%W * $*%n "; - - # netsplits - netsplit = "%R$*%n"; - netjoin = "%C$*%n"; - - # /names list - names_prefix = ""; - names_nick = "[%_$0%_$1-] "; - names_nick_op = "{names_nick $*}"; - names_nick_halfop = "{names_nick $*}"; - names_nick_voice = "{names_nick $*}"; - names_users = "[%g$*%n]"; - names_channel = "%G$*%n"; - - # DCC - dcc = "%g$*%n"; - dccfile = "%_$*%_"; - - # DCC chat, own msg/action - dccownmsg = "[%r$0%K($1-%K)%n] "; - dccownnick = "%R$*%n"; - dccownquerynick = "%W$*%n"; - dccownaction = "{action $*}"; - dccownaction_target = "{action_core $0}%K:%c$1%n "; - - # DCC chat, others - dccmsg = "[%G$1-%K(%g$0%K)%n] "; - dccquerynick = "%G$*%n"; - dccaction = "%W (*dcc*) $*%n %|"; - - ## - ## statusbar - ## - - # default background for all statusbars. You can also give - # the default foreground color for statusbar items. - sb_background = "%5%w"; - - # default backround for "default" statusbar group - #sb_default_bg = "%4"; - # background for prompt / input line - sb_prompt_bg = "%w"; - # background for info statusbar - sb_info_bg = "%8"; - # background for topicbar (same default) - #sb_topic_bg = "%4"; - - # text at the beginning of statusbars. sb-item already puts - # space there,so we don't use anything by default. - sbstart = ""; - # text at the end of statusbars. Use space so that it's never - # used for anything. - sbend = " "; - - topicsbstart = "{sbstart $*}"; - topicsbend = "{sbend $*}"; - - prompt = "[$*$prompt_additional] "; - - sb = " %c[%n$*%c]%n"; - sbmode = "(%c+%n$*)"; - sbaway = " (%GzZzZ%n)"; - sbservertag = ":$0 (change with ^X)"; - sbnickmode = "$0"; - - # activity in statusbar - - # ',' separator - sb_act_sep = "%c$*"; - # normal text - sb_act_text = "%c$*"; - # public message - sb_act_msg = "%W$*"; - # hilight - sb_act_hilight = "%M$*"; - # hilight with specified color, $0 = color, $1 = text - sb_act_hilight_color = "$0$1-%n"; -}; diff --git a/history-search/irssi/scripts b/history-search/irssi/scripts deleted file mode 120000 index b870225..0000000 --- a/history-search/irssi/scripts +++ /dev/null @@ -1 +0,0 @@ -../ \ No newline at end of file diff --git a/history-search/run_irssi.sh b/history-search/run_irssi.sh deleted file mode 100755 index 9b73b49..0000000 --- a/history-search/run_irssi.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -/opt/stow/repo/irssi/bin/irssi --home=irssi/ diff --git a/scrolled-reminder/scrolled-reminder.pl b/scrolled-reminder/scrolled-reminder.pl deleted file mode 100644 index e2775dc..0000000 --- a/scrolled-reminder/scrolled-reminder.pl +++ /dev/null @@ -1,65 +0,0 @@ -use strict; -use warnings; - -use Irssi; -use Irssi::TextUI; -use Irssi::Irc; - -use Data::Dumper; - -our $VERSION = '0.01'; -our %IRSSI = ( - authors => 'Tom Feist', - contact => 'shabble@cowu.be', - name => 'scrolled-reminder', - description => 'Requires confirmation to messages sent' - . 'when the current window is scrolled up', - - license => 'WTFPL; http://sam.zoy.org/wtfpl/', - url => 'http://metavore.org/', - ); - - -sub handle_send_text { - my ($text, $server_tag, $win_item) = @_; - unless ($win_item) { - # not all windows have window-items (eg: status window) - return; - } - - my $window = $win_item->window; - my $view = $window->view; - - if ($view->{bottom} != 1) { - # we're scrolled up. - unless (require_confirmation($window)) { - Irssi::signal_stop; - } - } -} - -sub handle_keypress { - my ($key) = @_; - Irssi::print("key pressed: " . $key); - if ($key == 3) { # Ctrl-c - } elsif ($key == 11) { # Ctrl-k - } else { - } - Irssi::signal_remove('gui key pressed', 'handle_keypress'); -} - -sub require_confirmation { - my ($window) = @_; - Irssi::signal_add_first('gui key pressed', 'handle_keypress'); - $window->print("You are scrolled up Really send?"); - write_to_prompt($window, 'Press Ctrl-K to confirm, Ctrl-C to cancel '); -} - -sub write_to_prompt { - my ($window, $msg) = @_; - #$window->command("insert_text $msg"); - -} - -Irssi::signal_add_first('send text', 'handle_send_text'); - diff --git a/scrolled-reminder/scrolled_reminder.pl b/scrolled-reminder/scrolled_reminder.pl new file mode 100644 index 0000000..d768220 --- /dev/null +++ b/scrolled-reminder/scrolled_reminder.pl @@ -0,0 +1,67 @@ +use strict; +use warnings; + +use Irssi; +use Irssi::TextUI; +use Irssi::Irc; + +use Data::Dumper; + +our $VERSION = '0.01'; +our %IRSSI = ( + authors => 'Tom Feist', + contact => 'shabble@cowu.be', + name => 'scrolled-reminder', + description => 'Requires confirmation to messages sent' + . 'when the current window is scrolled up', + + license => 'WTFPL; http://sam.zoy.org/wtfpl/', + url => 'http://metavore.org/', + ); + + +sub handle_send_text { + my ($text, $server_tag, $win_item) = @_; + unless ($win_item) { + # not all windows have window-items (eg: status window) + return; + } + + my $window = $win_item->window; + my $view = $window->view; + + if ($view->{bottom} != 1) { + # we're scrolled up. + unless (require_confirmation($window)) { + Irssi::signal_stop; + } + } +} + +sub handle_keypress { + my ($key) = @_; + Irssi::print("key pressed: " . $key); + if ($key == 3) { # Ctrl-c + } elsif ($key == 11) { # Ctrl-k + } else { + } + + Irssi::signal_remove('gui key pressed', \&handle_keypress); +} + +sub require_confirmation { + my ($window) = @_; + Irssi::signal_add_first('gui key pressed', \&handle_keypress); + + $window->print("You are scrolled up Really send?"); + write_to_prompt($window, 'Press Ctrl-K to confirm, Ctrl-C to cancel '); +} + +sub write_to_prompt { + my ($window, $msg) = @_; + #$window->command("insert_text $msg"); + +} + +Irssi::signal_add_first('send text', 'handle_send_text'); + diff --git a/test/.gitignore b/test/.gitignore new file mode 100644 index 0000000..1ab4a53 --- /dev/null +++ b/test/.gitignore @@ -0,0 +1 @@ +irssi/scripts/* diff --git a/test/build_links.pl b/test/build_links.pl new file mode 100755 index 0000000..daed67c --- /dev/null +++ b/test/build_links.pl @@ -0,0 +1,58 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +use File::Find; +use File::Basename qw/basename/; +#use File::Spec (); +use Cwd qw/realpath/; + +use FindBin; + +my $scripts_dir = $FindBin::Bin . '/irssi/scripts'; +print "Cleanup....\n"; +find(\&cleanup, "irssi/scripts/"); +print "Scanning for new....\n"; +find(\&wanted, '../'); +print "Done\n"; + +sub cleanup { + my $file = $_; + my $path = $File::Find::name; + my $dir = $File::Find::dir; + + # only process symlinks + my $abs_path = realpath($path); #File::Spec->rel2abs($path); + return unless defined $abs_path; + return unless (-l $abs_path); + print "Thinking about deleting $path\n"; + +} + +sub wanted { + my $file = $_; + my $path = $File::Find::name; + my $dir = $File::Find::dir; + + my $abs_path = realpath($path); #File::Spec->rel2abs($path); + #$abs_path = File::Spec->canonpath($abs_path); + + return if $dir =~ /(?:test|docs)$/; + return unless $file =~ /\.pl$/; + return unless defined $abs_path; + return unless -f $abs_path; + + print "Thinking about $scripts_dir/$file => $abs_path\n"; + create_link($abs_path); +} + + +sub create_link { + my $target = shift; + my $name = basename($target); + my $link = $scripts_dir . '/' . $name; + + my $ret = symlink($target, $link); + die "link creation failed - T: $target, L: $link" unless $ret; +} diff --git a/test/irssi/config b/test/irssi/config new file mode 100644 index 0000000..6b46771 --- /dev/null +++ b/test/irssi/config @@ -0,0 +1,290 @@ +servers = ( + { address = "eu.irc6.net"; chatnet = "IRCnet"; port = "6667"; }, + { + address = "irc.open-ircnet.net"; + chatnet = "IRCnet"; + port = "6667"; + }, + { address = "irc.efnet.org"; chatnet = "EFNet"; port = "6667"; }, + { + address = "irc.undernet.org"; + chatnet = "Undernet"; + port = "6667"; + }, + { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; }, + { + address = "irc.quakenet.org"; + chatnet = "QuakeNet"; + port = "6667"; + }, + { address = "irc.oftc.net"; chatnet = "OFTC"; port = "6667"; }, + { + address = "irc.gamesurge.net"; + chatnet = "GameSurge"; + port = "6667"; + }, + { address = "irc.webchat.org"; chatnet = "WebChat"; port = "6667"; }, + { address = "irc.rizon.net"; chatnet = "Rizon"; port = "6667"; }, + { address = "irc.link-net.org"; chatnet = "LinkNet"; port = "6667"; }, + { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; } +); + +chatnets = { + IRCnet = { + type = "IRC"; + max_kicks = "4"; + max_msgs = "5"; + max_whois = "4"; + max_query_chans = "5"; + }; + EFNet = { + type = "IRC"; + max_kicks = "4"; + max_msgs = "3"; + max_whois = "1"; + }; + Undernet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "3"; + max_whois = "30"; + }; + DALnet = { + type = "IRC"; + max_kicks = "4"; + max_msgs = "3"; + max_whois = "30"; + }; + QuakeNet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "3"; + max_whois = "30"; + }; + OFTC = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "3"; + max_whois = "30"; + }; + GameSurge = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "3"; + max_whois = "30"; + }; + WebChat = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "3"; + max_whois = "30"; + }; + Rizon = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "3"; + max_whois = "30"; + }; + LinkNet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "3"; + max_whois = "30"; + }; + SILC = { type = "SILC"; }; +}; + +channels = ( + { name = "#irssi"; chatnet = "ircnet"; autojoin = "No"; }, + { name = "silc"; chatnet = "silc"; autojoin = "No"; } +); + +aliases = { + J = "join"; + WJOIN = "join -window"; + WQUERY = "query -window"; + LEAVE = "part"; + BYE = "quit"; + EXIT = "quit"; + SIGNOFF = "quit"; + DESCRIBE = "action"; + DATE = "time"; + HOST = "userhost"; + LAST = "lastlog"; + SAY = "msg *"; + WI = "whois"; + WII = "whois $0 $0"; + WW = "whowas"; + W = "who"; + N = "names"; + M = "msg"; + T = "topic"; + C = "clear"; + CL = "clear"; + K = "kick"; + KB = "kickban"; + KN = "knockout"; + BANS = "ban"; + B = "ban"; + MUB = "unban *"; + UB = "unban"; + IG = "ignore"; + UNIG = "unignore"; + SB = "scrollback"; + UMODE = "mode $N"; + WC = "window close"; + WN = "window new hide"; + SV = "say Irssi $J ($V) - http://irssi.org/"; + GOTO = "sb goto"; + CHAT = "dcc chat"; + RUN = "SCRIPT LOAD"; + CALC = "exec - if which bc &>/dev/null\\; then echo '$*' | bc | awk '{print \"$*=\"$$1}'\\; else echo bc was not found\\; fi"; + SBAR = "STATUSBAR"; + INVITELIST = "mode $C +I"; + Q = "QUERY"; + "MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save"; + EXEMPTLIST = "mode $C +e"; + ATAG = "WINDOW SERVER"; + UNSET = "set -clear"; + RESET = "set -default"; + s = "script"; + rltest = "/script unload history_search; /script load history_search.pl"; + DUMP = "script exec use Data::Dumper\\; print Data::Dumper->new([\\\\$0-])->Dump"; + funcs_for = "/dump [map *\\$_{NAME}, grep ref(\\$_) eq 'GLOB' && *\\$_{CODE} && *\\$_{PACKAGE} eq 'Irssi::UI::Window', values \\%Irssi::UI::Window::]"; + et = "/script unload expando_test.pl; /script load expando_test"; + se = "script exec"; +}; + +statusbar = { + # formats: + # when using {templates}, the template is shown only if it's argument isn't + # empty unless no argument is given. for example {sb} is printed always, + # but {sb $T} is printed only if $T isn't empty. + + items = { + # start/end text in statusbars + barstart = "{sbstart}"; + barend = "{sbend}"; + + topicbarstart = "{topicsbstart}"; + topicbarend = "{topicsbend}"; + + # treated "normally", you could change the time/user name to whatever + time = "{sb $Z}"; + user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}"; + + # treated specially .. window is printed with non-empty windows, + # window_empty is printed with empty windows + window = "{sb $winref:$tag/$itemname{sbmode $M}}"; + window_empty = "{sb $winref{sbservertag $tag}}"; + prompt = "{prompt $[.15]itemname}"; + prompt_empty = "{prompt $winname}"; + topic = " $topic"; + topic_empty = " Irssi v$J - http://www.irssi.org"; + + # all of these treated specially, they're only displayed when needed + lag = "{sb Lag: $0-}"; + act = "{sb Act: $0-}"; + more = "-- more --"; + }; + + # there's two type of statusbars. root statusbars are either at the top + # of the screen or at the bottom of the screen. window statusbars are at + # the top/bottom of each split window in screen. + default = { + # the "default statusbar" to be displayed at the bottom of the window. + # contains all the normal items. + window = { + disabled = "no"; + + # window, root + type = "window"; + # top, bottom + placement = "bottom"; + # number + position = "1"; + # active, inactive, always + visible = "active"; + + # list of items in statusbar in the display order + items = { + barstart = { priority = "100"; }; + time = { }; + user = { }; + window = { }; + window_empty = { }; + lag = { priority = "-1"; }; + act = { priority = "10"; }; + more = { priority = "-1"; alignment = "right"; }; + barend = { priority = "100"; alignment = "right"; }; + }; + }; + + # statusbar to use in inactive split windows + window_inact = { + type = "window"; + placement = "bottom"; + position = "1"; + visible = "inactive"; + items = { + barstart = { priority = "100"; }; + window = { }; + window_empty = { }; + more = { priority = "-1"; alignment = "right"; }; + barend = { priority = "100"; alignment = "right"; }; + }; + }; + + # we treat input line as yet another statusbar :) It's possible to + # add other items before or after the input line item. + + # topicbar + topic = { + type = "root"; + placement = "top"; + position = "1"; + visible = "always"; + items = { + topicbarstart = { priority = "100"; }; + topic = { }; + topic_empty = { }; + topicbarend = { priority = "100"; alignment = "right"; }; + }; + }; + prompt = { + items = { + prompt = { }; + prompt_empty = { }; + input = { priority = "10"; }; + }; + }; + promptadd = { disabled = "yes"; }; + }; +}; +settings = { + core = { + real_name = "shabble"; + user_name = "tomfeist"; + nick = "tomfeist"; + }; + "fe-text" = { actlist_sort = "refnum"; }; + "perl/core/scripts" = { autoinstall_custom_prompt = "yes"; }; + "fe-common/core" = { bell_beeps = "yes"; }; +}; +keyboard = ( + { + key = "meta-g"; + id = "command"; + data = "se print defined(Irssi::gui_input_set(\"hello\"))?1:0"; + }, + { key = "meta-x"; id = "command"; data = "history_search "; }, + { + key = "M-g"; + id = "command"; + data = "se print defined(Irssi::gui_input_set(\"hello\"))?1:0"; + }, + { key = "^Z"; id = "command"; data = "echo moo"; }, + { key = "^O"; id = "command"; data = "echo moo"; }, + { key = "^o"; id = "command"; data = "echo moo"; }, + { key = "^R"; id = "command"; data = "history_search_start "; } +); diff --git a/test/irssi/default.theme b/test/irssi/default.theme new file mode 100644 index 0000000..357a98e --- /dev/null +++ b/test/irssi/default.theme @@ -0,0 +1,294 @@ +# When testing changes, the easiest way to reload the theme is with /RELOAD. +# This reloads the configuration file too, so if you did any changes remember +# to /SAVE it first. Remember also that /SAVE overwrites the theme file with +# old data so keep backups :) + +# TEMPLATES: + +# The real text formats that irssi uses are the ones you can find with +# /FORMAT command. Back in the old days all the colors and texts were mixed +# up in those formats, and it was really hard to change the colors since you +# might have had to change them in tens of different places. So, then came +# this templating system. + +# Now the /FORMATs don't have any colors in them, and they also have very +# little other styling. Most of the stuff you need to change is in this +# theme file. If you can't change something here, you can always go back +# to change the /FORMATs directly, they're also saved in these .theme files. + +# So .. the templates. They're those {blahblah} parts you see all over the +# /FORMATs and here. Their usage is simply {name parameter1 parameter2}. +# When irssi sees this kind of text, it goes to find "name" from abstracts +# block below and sets "parameter1" into $0 and "parameter2" into $1 (you +# can have more parameters of course). Templates can have subtemplates. +# Here's a small example: +# /FORMAT format hello {colorify {underline world}} +# abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; } +# When irssi expands the templates in "format", the final string would be: +# hello %G%Uworld%U%n +# ie. underlined bright green "world" text. +# and why "$0-", why not "$0"? $0 would only mean the first parameter, +# $0- means all the parameters. With {underline hello world} you'd really +# want to underline both of the words, not just the hello (and world would +# actually be removed entirely). + +# COLORS: + +# You can find definitions for the color format codes in docs/formats.txt. + +# There's one difference here though. %n format. Normally it means the +# default color of the terminal (white mostly), but here it means the +# "reset color back to the one it was in higher template". For example +# if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would +# print yellow "foo" (as set with %Y) but "bar" would be green, which was +# set at the beginning before the {foo} template. If there wasn't the %g +# at start, the normal behaviour of %n would occur. If you _really_ want +# to use the terminal's default color, use %N. + +############################################################################# + +# default foreground color (%N) - -1 is the "default terminal color" +default_color = "-1"; + +# print timestamp/servertag at the end of line, not at beginning +info_eol = "false"; + +# these characters are automatically replaced with specified color +# (dark grey by default) +replaces = { "[]=" = "%K$*%n"; }; + +abstracts = { + ## + ## generic + ## + + # text to insert at the beginning of each non-message line + line_start = "%B-%W!%B-%n "; + + # timestamp styling, nothing by default + timestamp = "[[[$*]]]"; + + # any kind of text that needs hilighting, default is to bold + hilight = "%_$*%_"; + + # any kind of error message, default is bright red + error = "%R$*%n"; + + # channel name is printed + channel = "%_$*%_"; + + # nick is printed + nick = "%_$*%_"; + + # nick host is printed + nickhost = "[$*]"; + + # server name is printed + server = "%_$*%_"; + + # some kind of comment is printed + comment = "[$*]"; + + # reason for something is printed (part, quit, kick, ..) + reason = "{comment $*}"; + + # mode change is printed ([+o nick]) + mode = "{comment $*}"; + + ## + ## channel specific messages + ## + + # highlighted nick/host is printed (joins) + channick_hilight = "%C$*%n"; + chanhost_hilight = "{nickhost %c$*%n}"; + + # nick/host is printed (parts, quits, etc.) + channick = "%c$*%n"; + chanhost = "{nickhost $*}"; + + # highlighted channel name is printed + channelhilight = "%c$*%n"; + + # ban/ban exception/invite list mask is printed + ban = "%c$*%n"; + + ## + ## messages + ## + + # the basic styling of how to print message, $0 = nick mode, $1 = nick + msgnick = "%K<%n$0$1-%K>%n %|"; + + # message from you is printed. "msgownnick" specifies the styling of the + # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the + # whole line. + + # Example1: You want the message text to be green: + # ownmsgnick = "{msgnick $0 $1-}%g"; + # Example2.1: You want < and > chars to be yellow: + # ownmsgnick = "%Y{msgnick $0 $1-%Y}%n"; + # (you'll also have to remove <> from replaces list above) + # Example2.2: But you still want to keep <> grey for other messages: + # pubmsgnick = "%K{msgnick $0 $1-%K}%n"; + # pubmsgmenick = "%K{msgnick $0 $1-%K}%n"; + # pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n"; + # ownprivmsgnick = "%K{msgnick $*%K}%n"; + # privmsgnick = "%K{msgnick %R$*%K}%n"; + + # $0 = nick mode, $1 = nick + ownmsgnick = "{msgnick $0 $1-}"; + ownnick = "%W$*%n"; + + # public message in channel, $0 = nick mode, $1 = nick + pubmsgnick = "{msgnick $0 $1-}"; + pubnick = "%N$*%n"; + + # public message in channel meant for me, $0 = nick mode, $1 = nick + pubmsgmenick = "{msgnick $0 $1-}"; + menick = "%Y$*%n"; + + # public highlighted message in channel + # $0 = highlight color, $1 = nick mode, $2 = nick + pubmsghinick = "{msgnick $1 $0$2-%n}"; + + # channel name is printed with message + msgchannel = "%K:%c$*%n"; + + # private message, $0 = nick, $1 = host + privmsg = "[%R$0%K(%r$1-%K)%n] "; + + # private message from you, $0 = "msg", $1 = target nick + ownprivmsg = "[%r$0%K(%R$1-%K)%n] "; + + # own private message in query + ownprivmsgnick = "{msgnick $*}"; + ownprivnick = "%W$*%n"; + + # private message in query + privmsgnick = "{msgnick %R$*%n}"; + + ## + ## Actions (/ME stuff) + ## + + # used internally by this theme + action_core = "%W * $*%n"; + + # generic one that's used by most actions + action = "{action_core $*} "; + + # own action, both private/public + ownaction = "{action $*}"; + + # own action with target, both private/public + ownaction_target = "{action_core $0}%K:%c$1%n "; + + # private action sent by others + pvtaction = "%W (*) $*%n "; + pvtaction_query = "{action $*}"; + + # public action sent by others + pubaction = "{action $*}"; + + + ## + ## other IRC events + ## + + # whois + whois = "%# $[8]0 : $1-"; + + # notices + ownnotice = "[%r$0%K(%R$1-%K)]%n "; + notice = "%K-%M$*%K-%n "; + pubnotice_channel = "%K:%m$*"; + pvtnotice_host = "%K(%m$*%K)"; + servernotice = "%g!$*%n "; + + # CTCPs + ownctcp = "[%r$0%K(%R$1-%K)] "; + ctcp = "%g$*%n"; + + # wallops + wallop = "%W$*%n: "; + wallop_nick = "%n$*"; + wallop_action = "%W * $*%n "; + + # netsplits + netsplit = "%R$*%n"; + netjoin = "%C$*%n"; + + # /names list + names_prefix = ""; + names_nick = "[%_$0%_$1-] "; + names_nick_op = "{names_nick $*}"; + names_nick_halfop = "{names_nick $*}"; + names_nick_voice = "{names_nick $*}"; + names_users = "[%g$*%n]"; + names_channel = "%G$*%n"; + + # DCC + dcc = "%g$*%n"; + dccfile = "%_$*%_"; + + # DCC chat, own msg/action + dccownmsg = "[%r$0%K($1-%K)%n] "; + dccownnick = "%R$*%n"; + dccownquerynick = "%W$*%n"; + dccownaction = "{action $*}"; + dccownaction_target = "{action_core $0}%K:%c$1%n "; + + # DCC chat, others + dccmsg = "[%G$1-%K(%g$0%K)%n] "; + dccquerynick = "%G$*%n"; + dccaction = "%W (*dcc*) $*%n %|"; + + ## + ## statusbar + ## + + # default background for all statusbars. You can also give + # the default foreground color for statusbar items. + sb_background = "%5%w"; + + # default backround for "default" statusbar group + #sb_default_bg = "%4"; + # background for prompt / input line + sb_prompt_bg = "%w"; + # background for info statusbar + sb_info_bg = "%8"; + # background for topicbar (same default) + #sb_topic_bg = "%4"; + + # text at the beginning of statusbars. sb-item already puts + # space there,so we don't use anything by default. + sbstart = ""; + # text at the end of statusbars. Use space so that it's never + # used for anything. + sbend = " "; + + topicsbstart = "{sbstart $*}"; + topicsbend = "{sbend $*}"; + + prompt = "[$*$prompt_additional] "; + + sb = " %c[%n$*%c]%n"; + sbmode = "(%c+%n$*)"; + sbaway = " (%GzZzZ%n)"; + sbservertag = ":$0 (change with ^X)"; + sbnickmode = "$0"; + + # activity in statusbar + + # ',' separator + sb_act_sep = "%c$*"; + # normal text + sb_act_text = "%c$*"; + # public message + sb_act_msg = "%W$*"; + # hilight + sb_act_hilight = "%M$*"; + # hilight with specified color, $0 = color, $1 = text + sb_act_hilight_color = "$0$1-%n"; +}; diff --git a/test/run_irssi.sh b/test/run_irssi.sh new file mode 100755 index 0000000..9b73b49 --- /dev/null +++ b/test/run_irssi.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +/opt/stow/repo/irssi/bin/irssi --home=irssi/ -- cgit v1.2.3