diff options
| author | Tom Feist <shabble@cowu.be> | 2010-07-24 18:04:17 +0000 | 
|---|---|---|
| committer | Tom Feist <shabble@cowu.be> | 2010-07-24 18:04:17 +0000 | 
| commit | 5ad9608ab4c8e828ea979377ce94066a3f7ddccb (patch) | |
| tree | 131e259d481c3e534a89943231272f454187746c /test | |
| parent | added some text files with various irssi perl-xs glue function dumps (diff) | |
| download | irssi-scripts-5ad9608ab4c8e828ea979377ce94066a3f7ddccb.tar.gz irssi-scripts-5ad9608ab4c8e828ea979377ce94066a3f7ddccb.zip | |
moved testing stuff to a signle dir
Diffstat (limited to 'test')
| -rw-r--r-- | test/.gitignore | 1 | ||||
| -rwxr-xr-x | test/build_links.pl | 58 | ||||
| -rw-r--r-- | test/irssi/config | 290 | ||||
| -rw-r--r-- | test/irssi/default.theme | 294 | ||||
| -rwxr-xr-x | test/run_irssi.sh | 2 | 
5 files changed, 645 insertions, 0 deletions
| 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/ | 
