changeset 1854:1d1e0f98d459

Remove outdated and unmaintained mcwizz from contrib
author Mikael Berthe <mikael@lilotux.net>
date Fri, 02 Apr 2010 17:15:38 +0200
parents 32bceb73895c
children c5b2789443c3
files mcabber/contrib/mcwizz.rb
diffstat 1 files changed, 0 insertions(+), 631 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/contrib/mcwizz.rb	Fri Apr 02 16:46:48 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,631 +0,0 @@
-#!/usr/bin/ruby -w
-#
-#  Copyright (C) 2006,2007 Adam Wolk "Mulander" <netprobe@gmail.com>
-#  Copyright (C) 2006 Mateusz Karkula "Karql"
-#
-# This script is provided under the terms of the GNU General Public License,
-# see the file COPYING in the root mcabber source directory.
-#
-#
-
-require 'getoptlong'
-
-##
-# strings of colors ;)
-module Colors
-  @@color = true
-
-  ESC 	= 27.chr
-
-  RED 	= ESC + '[31m'
-  GREEN = ESC + '[32m'
-  YELLOW= ESC + '[33m'
-  BLUE  = ESC + '[34m'
-  PURPLE= ESC + '[35m'
-  CYAN  = ESC + '[36m'
-
-  BGREEN= ESC + '[42m'
-
-  ENDCOL= ESC + '[0m'
-
-  def color(color)
-    return '[' + self + ']' unless @@color
-    color + self + ENDCOL
-  end
-  def red;	color(RED);	end
-  def green;	color(GREEN);	end
-  def yellow;	color(YELLOW);	end
-  def blue;	color(BLUE);	end
-  def purple;	color(PURPLE);	end
-  def cyan;	color(CYAN);	end
-  def bgreen;	color(BGREEN);	end
-end
-
-class String;  include Colors;	end
-
-class Option
-  attr_accessor :value, :current, :default
-  attr_reader :name,:msg
-
-  def initialize(args)
-    @name	= args[:name]
-    @msg	= args[:msg]
-    @default	= args[:default]
-    @value	= nil
-    @current	= nil
-    @prompt	= ''
-  end
-
-  def set?;		!@value.nil?;		end
-  def to_s;		"set #@name=#@value";	end
-  def additional?; 	false;			end
-
-  def ask()
-    puts @msg
-    print @prompt
-    $stdin.gets.chomp
-  end
-
-end
-
-class YesNo < Option
-  def initialize(args)
-    super(args)
-    @ifSet  = args[:ifSet]
-    @prompt = '[Yes/no]: '
-  end
-  def ask()
-    # 1 == yes, 0 == no
-    case super
-      when /^Y/i
-        @value = 1
-	return additional()
-      when /^N/i
-        @value = 0
-	return []
-      else
-        puts 'Please answer yes or no'
-	puts
-        ask()
-      end
-  end
-
-  def additional?
-    (@value == 1 && !@ifSet.nil?) ? true : false
-  end
-
-  def additional
-    (@ifSet.nil?) ? [] : @ifSet
-  end
-end
-
-class Edit < Option
-  def initialize(args)
-    super(args)
-    @regex  = args[:regex]
-    @prompt = '[edit]: '
-  end
-  def ask()
-    answer = super
-    if answer.empty? || ( !@regex.nil? && !(answer =~ @regex) )
-      ask()
-    else
-      @value = answer
-    end
-    return []
-  end
-end
-
-class Multi < Option
-  attr_reader :choices
-  def initialize(args)
-    super(args)
-    @choices = args[:choices]
-    @max     = @choices.length - 1
-    @prompt  = "[0-#{ @max }] "
-  end
-
-  def ask()
-    puts  @msg
-    @choices.each_with_index do |choice,idx|
-      print "#{idx}. #{choice}\n"
-    end
-    print @prompt
-    answer = $stdin.gets.chomp
-
-    ask() if answer.empty? # we ask here because ''.to_i == 0
-
-    case answer.to_i
-      when 0 ... @max
-        @value = answer
-      else
-        ask()
-    end
-    return []
-  end
-end
-
-class Wizzard
-  VERSION = 0.04
-  attr_accessor :options, :ignore_previous, :ignore_auto, :target
-  def initialize()
-    if File.exists?(ENV['HOME'] + '/.mcabberrc')
-      @target = ENV['HOME'] + '/.mcabberrc'
-    else
-      Dir.mkdir(ENV['HOME'] + '/.mcabber') unless File.exists?(ENV['HOME'] + '/.mcabber')
-      @target = ENV['HOME'] + '/.mcabber/mcabberrc'
-    end
-    @ignore_previous = false
-    @ignore_auto     = false
-    @options   = Hash.new
-    @order     = Array.new
-    @processed = Array.new
-    @old     = Array.new # for storing the users file untouched
-  end
-
-  ##
-  # add a group of settings to the order queue
-  def enqueue(group)
-    group = group.to_a if group.class.to_s == 'String'
-    @order += group
-  end
-
-
-  ## adds options to the settings object
-  def add(args)
-    @options[args[:name]] = args[:type].new(args)
-  end
-
-  ## run the wizzard
-  def run()
-    parse()
-    display(@order)
-    save()
-  end
-
-  ##
-  # displays the setting and allows the user to modify it
-  def display(order)
-    order.each do |name|
-      # this line here is less efficient then on the end of this method
-      # but if placed on the end, recursion then breaks the order of settings
-      @processed.push(name)
-      ##
-      # I know this is not efficient, but I have no better idea to modify the default port
-      @options['port'].default = 5223 if @options['ssl'].value == 1
-
-      puts
-      puts "'#{name}'"
-      puts @options[name].msg
-      puts 'e'.green + 'dit setting'
-      puts 'l'.green + 'eave current setting ' + show(@options[name],:current).cyan unless @options[name].current.nil?
-      puts 'u'.green + 'se default ' + show(@options[name],:default).cyan unless @options[name].default.nil?
-      puts 's'.green + 'kip'
-      puts 'a'.red + 'bort configuration'
-      print '[action]: '
-      case $stdin.gets.chomp
-        when /^s/
-          next
-        when /^l/
-          @options[name].value = @options[name].current
-	  display(@options[name].additional) if @options[name].additional?
-        when /^u/
-          @options[name].value = @options[name].default
-	  display(@options[name].additional) if @options[name].additional?
-        when /^e/
-          additional = @options[name].ask
-	  display(additional) if additional.empty?
-	when /^a/
-	  puts 'aborted!!'.red
-	  exit
-      end
-     end
-  end
-
-  ##
-  # this allows us to print 'yes' 'no' or descriptions of multi option settings
-  # insted of just showing an integer
-  def show(option,type)
-    value = ''
-    if type == :default
-      value = option.default
-    else
-      value = option.current
-    end
-
-    case option.class.to_s
-      when 'YesNo'
-        return (value.to_i==1) ? 'yes' : 'no'
-      when 'Multi'
-        return option.choices[value.to_i]
-      else
-        return value.to_s
-    end
-  end
-
-  ## save
-  # save all settings to a file
-  def save()
-    flag,dumped = true,false
-    target	= File.new(@target,"w")
-
-    @old.each do |line|
-      flag = false if line =~ /^#BEGIN AUTO GENERATED SECTION/
-      flag = true  if line =~ /^#END AUTO GENERATED SECTION/
-      if flag
-        target << line
-      elsif( !flag && !dumped )
-        target << "#BEGIN AUTO GENERATED SECTION\n\n"
-        @processed.each do |name|
-          target << @options[name].to_s + "\n" if @options[name].set?
-        end
-	puts
-	dumped = true
-      end
-    end
-
-    unless dumped
-      target << "#BEGIN AUTO GENERATED SECTION\n\n"
-      @processed.each do |name|
-        target << @options[name].to_s + "\n" if @options[name].set?
-      end
-      target << "#END AUTO GENERATED SECTION\n\n"
-    end
-
-    target.close
-  end
-  ## parse
-  # attempt to load settings from file
-  def parse()
-    return if @ignore_previous
-    return unless File.exists?(@target)
-    keyreg = @options.keys.join('|')
-    parse  = true
-    File.open(@target) do |config|
-      config.each do |line|
-
-        @old << line
-	parse = false if @ignore_auto && line =~ /^#BEGIN AUTO GENERATED SECTION/
-	parse = true  if @ignore_auto && line =~ /^#END AUTO GENERATED SECTION/
-
-	if parse && line =~ /^set\s+(#{keyreg})\s*=\s*(.+)$/
-	  @options[$1].current = $2 if @options.has_key?($1)
-	end
-
-      end
-    end
-  end
-
-  ##
-  # display onscreen help
-  def Wizzard.help()
-    puts %{
-Usage: #{ $0.to_s.blue } #{ 'options'.green }
-
-This script generates configuration files for mcabber jabber client
-
-#{ "Options:".green }
-#{ "-h".green }, #{ "--help".green }		display this help screen
-#{ "-v".green }, #{ "--version".green }		display version information
-#{ "-T".green }, #{ "--target".green }		configuration file
-#{ "-i".green }, #{ "--ignore".green }		ignore previous configuration
-#{ "-I".green }, #{ "--ignore-auto".green }	ignore auto generated section
-#{ "-S".green }, #{ "--status".green }		ask for status settings
-#{ "-P".green }, #{ "--proxy".green }		ask for proxy settings
-#{ "-k".green }, #{ "--keep".green }		ping/keepalive connection settings
-#{ "-t".green }, #{ "--tracelog".green }		ask for tracelog settings
-#{ "-C".green }, #{ "--nocolor".green }		turn of color output
-    }
-    exit
-  end
-
-  ##
-  # display version information
-  def Wizzard.version()
-    puts "mcwizz v#{VERSION.to_s.purple} coded by #{ 'Karql'.purple } & #{ 'mulander'.purple } <netprobe@gmail.com>"
-    exit
-  end
-end
-
-required	= %w{ 	username server resource nickname ssl port pgp logging }
-proxy 		= %w{ 	proxy_host proxy_port proxy_user proxy_pass }
-status		= %w{ 	buddy_format roster_width show_status_in_buffer autoaway message message_avail message_free
-			message_dnd message_notavail message_away message_autoaway }
-tracelog	= %w{	tracelog_level tracelog_file }
-
-opts = GetoptLong.new(
-  ["--help","-h",       GetoptLong::NO_ARGUMENT],
-  ["--version","-v",    GetoptLong::NO_ARGUMENT],
-  ["--target", "-T",	GetoptLong::REQUIRED_ARGUMENT],
-  ["--ignore","-i",     GetoptLong::NO_ARGUMENT],
-  ["--ignore-auto","-I",GetoptLong::NO_ARGUMENT],
-  ["--proxy","-P",      GetoptLong::NO_ARGUMENT],
-  ["--keep","-k",       GetoptLong::NO_ARGUMENT],
-  ["--status","-S",     GetoptLong::NO_ARGUMENT],
-  ["--tracelog","-t",   GetoptLong::NO_ARGUMENT],
-  ["--nocolor","-C",   GetoptLong::NO_ARGUMENT]
-)
-
-opts.ordering = GetoptLong::REQUIRE_ORDER
-
-config = Wizzard.new()
-config.enqueue(required)
-config.enqueue( %w{ beep_on_message hide_offline_buddies iq_version_hide_os autoaway } )
-
-##
-# Description of the add() syntax
-# :name - name of the setting
-# :msg  - message displayed to the user
-# :type - type of settings - avaible types are: YesNo, Edit, Multi
-# :default - default setting
-# YesNo type specific flag:
-# :ifSet  - an array of other options, that will be asked if the flag holding option is set to true
-# Edit type specific flag:
-# :regex- regular expression to which input will be compared
-# Multi type specific flag:
-# :choices - an array of possible settings
-#
-
-##
-# here we add all the settings that we want to be able to handle
-
-##
-# ungrouped settings
-config.add(	:name  => 'beep_on_message',
-		:msg   => 'Should mcabber beep when you receive a message?',
-		:type  => YesNo,
-		:default => 0 )
-
-config.add(	:name  => 'hide_offline_buddies',
-		:msg   => 'Display only connected buddies in the roster?',
-		:type  => YesNo,
-		:default => 0 )
-
-config.add(	:name  => 'pinginterval',
-		:msg   => 'Enter pinginterval in seconds for keepalive settings' \
-			  ' set this to 0 to disable.',
-		:type  => Edit,
-		:regex => /^\d+$/,
-		:default => 40)
-
-config.add(	:name  => 'iq_version_hide_os',
-		:msg   => 'Hide Your OS information?',
-		:type  => YesNo,
-		:default => 0 )
-
-
-config.add(	:name  => 'port',
-		:msg   => 'Enter port number',
-		:type  => Edit,
-		:regex => /^\d+$/,
-		:default => 5222 )
-
-##
-# server settings
-config.add(	:name  => 'username',
-		:msg   => 'Your username',
-		:type  => Edit,
-		:regex => /^[^\s\@:<>&\'"]+$/ )
-
-config.add(	:name  => 'server',
-		:msg   => 'Your jabber server',
-		:type  => Edit,
-		:regex => /^\S+$/ )
-
-config.add(	:name  => 'resource',
-		:msg   => 'Resource (If you don\'t know what a resource is, use the default setting)',
-		:type  => Edit,
-		:regex => /^.{1,1024}$/,
-		:default => 'mcabber' )
-
-config.add(	:name  => 'nickname',
-		:msg   => 'Conference nickname (if you skip this setting your username will be used as' \
-			  ' nickname in MUC chatrooms)',
-		:type  => Edit )
-
-##
-# ssl settings
-config.add(	:name  => 'ssl',
-		:msg   => 'Enable ssl?',
-		:type  => YesNo,
-		:ifSet => %w{ ssl_verify ssl_cafile ssl_capath ciphers },
-		:default => 0 )
-
-
-config.add(	:name  => 'ssl_verify',
-		:msg   => 'Set to 0 to disable certificate verification, or non-zero to set desired maximum CA' \
-			  ' verification depth. Use -1 to specify an unlimited depth.',
-		:type  => Edit,
-		:regex => /^(-1)|(\d+)$/,
-		:default => -1 )
-
-config.add(	:name  => 'ssl_cafile',
-		:msg   => 'Set to a path to a CA certificate file (may contain multiple CA certificates)',
-		:type  => Edit )
-
-config.add(	:name  => 'ssl_capath',
-		:msg   => 'Set to a directory containing CA certificates (use c_rehash to generate hash links)',
-		:type  => Edit )
-
-config.add(	:name  => 'ciphers',
-		:msg   => 'Set to a list of desired SSL ciphers (run "openssl ciphers" for a candidate values)',
-		:type  => Edit )
-
-##
-# pgp support
-config.add(	:name  => 'pgp',
-		:msg   => 'Enable OpenPGP support?',
-		:type  => YesNo,
-		:ifSet => %w{ pgp_private_key },
-		:default => 0 )
-
-config.add(	:name  => 'pgp_private_key',
-		:msg   => 'Enter your private key id. You can get the Key Id with gpg: ' \
-			  '"gpg --list-keys --keyid-format long"',
-		:type  => Edit )
-##
-# proxy settings
-config.add(	:name  => 'proxy_host',
-		:msg   => 'Proxy host',
-		:type  => Edit,
-		:regex => /^\S+?\.\S+?$/ )
-
-config.add(	:name  => 'proxy_port',
-		:msg   => 'Proxy port',
-		:type  => Edit,
-		:regex => /^\d+$/,
-		:default => 3128 )
-
-config.add(	:name  => 'proxy_user',
-		:msg   => 'Proxy user',
-		:type  => Edit )
-
-config.add(     :name  => 'proxy_pass',
-		:msg   => 'Proxy pass (will be stored unencrypted an the pass will be echoed during input)',
-		:type  => Edit )
-##
-# trace logs
-config.add(	:name  => 'tracelog_level',
-		:msg   => 'Specify level of advanced traces',
-		:type  => Multi,
-		:choices => [ 	'lvl0: I don\'t want advanced tracing',
-				'lvl1: most events of the log window are written to the file',
-				'lvl2: debug logging (XML etc.)' ],
-		:default => 0 )
-
-config.add(	:name  => 'tracelog_file',
-		:msg   => 'Specify a file to which the logs will be written',
-		:type  => Edit )
-##
-# logging settings
-config.add(	:name  => 'logging',
-		:msg   => 'Enable logging?',
-		:type  => YesNo,
-		:ifSet => %w{ log_win_height log_display_sender load_logs logging_dir log_muc_conf},
-		:default => 1 )
-
-config.add(	:name  => 'log_win_height',
-		:msg   => 'Set log window height (minimum 1)',
-		:type  => Edit,
-		:regex => /^[1-9]\d*/,
-		:default => 5 )
-
-config.add(	:name  => 'log_display_sender',
-		:msg   => 'Display the message sender\'s jid in the log window?',
-		:type  => YesNo,
-		:default => 0 )
-
-config.add(	:name  => 'load_logs',
-		:msg   => 'Enable loading logs?',
-		:type  => YesNo,
-		:default => 1 )
-
-config.add(	:name  => 'logging_dir',
-		:msg   => 'Enter logging directory',
-		:type  => Edit )
-
-config.add(	:name  => 'log_muc_conf',
-		:msg   => 'Log MUC chats?',
-		:ifSet => %w{ load_muc_logs },
-		:type  => YesNo,
-		:default => 1 )
-
-config.add(	:name  => 'load_muc_logs',
-		:msg   => 'Load MUC chat logs?',
-		:type  => YesNo,
-		:default => 0 )
-##
-# status settings
-config.add(	:name  => 'roster_width',
-		:msg   => 'Set buddylist window width (minimum 2)',
-		:type  => Edit,
-		:regex => /^[2-9]\d*$/,
-		:default => 24 )
-
-config.add(	:name  => 'buddy_format',
-		:msg   => 'What buddy format (in status window) do you prefer?',
-		:type  => Multi,
-		:choices => [ 	'<jid/resource>',
-				'name <jid/resource> (name is omitted if same as the jid)',
-				'name/resource (if the name is same as the jid, use <jid/res>',
-				'name (if the name is the same as the jid, use <jid/res>' ] )
-
-config.add(	:name  => 'show_status_in_buffer',
-		:msg   => 'What status changes should be displayed in the buffer?',
-		:type  => Multi,
-		:choices => [	'none',
-				'connect/disconnect',
-				'all' ],
-		:default => 2 )
-
-config.add(	:name  => 'autoaway',
-		:msg   => 'After how many seconds of inactivity should You become away? (0 for never)',
-		:type  => Edit,
-		:regex => /^\d+$/,
-		:default => 0 )
-
-config.add(	:name  => 'message',
-		:msg   => 'Skip this setting unless you want to override all other status messages',
-		:type  => Edit )
-
-config.add(	:name  => 'message_avail',
-		:message   => 'Set avaible status',
-		:type  => Edit,
-		:default => 'I\'m avaible' )
-
-
-config.add(	:name  => 'message_free',
-		:message   => 'Set free for chat status',
-		:type  => Edit,
-		:default => 'I\'m free for chat' )
-
-config.add(	:name  => 'message_dnd',
-		:message   => 'Set do not disturb status',
-		:type  => Edit,
-		:default => 'Please do not disturb' )
-
-config.add(	:name  => 'message_notavail',
-		:message   => 'Set not avaible status',
-		:type  => Edit,
-		:default => 'I\'m not avaible' )
-
-config.add(	:name  => 'message_away',
-		:message   => 'Set away status',
-		:type  => Edit,
-		:default => 'I\'m away' )
-
-config.add(	:name  => 'message_autoaway',
-		:msg   => 'Set auto-away status',
-		:type  => Edit,
-		:default => 'Auto-away' )
-
-begin
-  opts.each do |opt,arg|
-    case opt
-      when '--help'
-        Wizzard.help()
-      when '--version'
-        Wizzard.version()
-      when '--target'
-        config.target          = arg
-      when '--ignore'
-        config.ignore_previous = true
-      when '--ignore-auto'
-        config.ignore_auto     = true
-      when '--proxy'
-        config.enqueue(proxy)
-      when '--keep'
-        config.enqueue('pinginterval')
-      when '--tracelog'
-        config.enqueue(tracelog)
-      when '--status'
-        config.enqueue(status)
-      when '--nocolor'
-        class String; @@color = false; end
-    end
-  end
-rescue GetoptLong::InvalidOption
-  Wizzard.help()
-end
-
-config.run