Author: paladine                     Date: Sun Sep  4 11:11:05 2005 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- move gajim-remote.py from scripts to src

---- Files affected:
SOURCES:
   gajim-remote.patch (1.1 -> 1.2) 

---- Diffs:

================================================================
Index: SOURCES/gajim-remote.patch
diff -u SOURCES/gajim-remote.patch:1.1 SOURCES/gajim-remote.patch:1.2
--- SOURCES/gajim-remote.patch:1.1      Fri Aug 19 13:10:12 2005
+++ SOURCES/gajim-remote.patch  Sun Sep  4 13:11:00 2005
@@ -1,6 +1,25 @@
-diff -urN gajim-0.8.orig/scripts/gajim-remote gajim-0.8/scripts/gajim-remote
---- gajim-0.8.orig/scripts/gajim-remote        2005-08-19 12:58:20.182083440 
+0200
-+++ gajim-0.8/scripts/gajim-remote     2005-08-19 12:59:44.453272272 +0200
+diff -urN gajim-0.8.1.orig/Makefile gajim-0.8.1/Makefile
+--- gajim-0.8.1.orig/Makefile  2005-09-04 12:48:06.972357568 +0200
++++ gajim-0.8.1/Makefile       2005-09-04 13:08:35.816544856 +0200
+@@ -64,6 +64,7 @@
+                       mkdir -p "$(DESTDIR)$(PREFIX)/share/gajim/$$d"; \
+               fi; \
+       done
++      mv scripts/gajim-remote.py src
+       for f in $(FILES) ; do \
+               DST=`dirname "$$f"`; \
+               cp "$$f" "$(DESTDIR)$(PREFIX)/share/gajim/$$DST/"; \
+@@ -92,6 +93,7 @@
+               echo "$$F" > "$(DESTDIR)$(PREFIX)/bin/$$BASE"; \
+               chmod +x "$(DESTDIR)$(PREFIX)/bin/$$BASE"; \
+       done
++      rmdir "$(DESTDIR)$(PREFIX)/share/gajim/scripts"
+ 
+ #
+ # show make params we accept
+diff -urN gajim-0.8.1.orig/scripts/gajim-remote 
gajim-0.8.1/scripts/gajim-remote
+--- gajim-0.8.1.orig/scripts/gajim-remote      2005-09-04 12:48:06.975357112 
+0200
++++ gajim-0.8.1/scripts/gajim-remote   2005-09-04 12:56:51.448625056 +0200
 @@ -22,6 +22,6 @@
        echo "You must not launch gajim-remote as root, it is INSECURE"
  fi
@@ -9,545 +28,15 @@
 +cd PREFIX/share/gajim/src
  export PYTHONPATH="$PYTHONPATH:PREFIXLIB/gajim"
  python gajim-remote.py $@
-diff -urN gajim-0.8.orig/src/gajim-remote.py gajim-0.8/src/gajim-remote.py
---- gajim-0.8.orig/src/gajim-remote.py 1970-01-01 01:00:00.000000000 +0100
-+++ gajim-0.8/src/gajim-remote.py      2005-08-19 12:47:58.598578496 +0200
-@@ -0,0 +1,493 @@
-+#!/bin/sh
-+''':'
-+exec python -OOt "$0" ${1+"$@"}
-+' '''
-+##    scripts/gajim-remote.py
-+##
-+## Gajim Team:
-+##    - Yann Le Boulanger <[EMAIL PROTECTED]>
-+##    - Vincent Hanquez <[EMAIL PROTECTED]>
-+##    - Nikos Kouremenos <[EMAIL PROTECTED]>
-+##    - Dimitur Kirov <[EMAIL PROTECTED]>
-+##
-+##    Copyright (C) 2003-2005 Gajim Team
-+##
-+## This program is free software; you can redistribute it and/or modify
-+## it under the terms of the GNU General Public License as published
-+## by the Free Software Foundation; version 2 only.
-+##
-+## This program is distributed in the hope that it will be useful,
-+## but WITHOUT ANY WARRANTY; without even the implied warranty of
-+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+## GNU General Public License for more details.
-+##
-+
-+# gajim-remote help will show you the DBUS API of Gajim
-+
-+import sys
-+import gtk
-+import gobject
-+
-+import signal
-+
-+signal.signal(signal.SIGINT, signal.SIG_DFL) # ^C exits the application
-+
-+import i18n
-+
-+_ = i18n._
-+i18n.init()
-+
-+
-+try:
-+      import dbus
-+except:
-+      send_error('Dbus is not supported.\n')
-+
-+_version = getattr(dbus, 'version', (0, 20, 0))
-+if _version[1] >= 41:
-+      import dbus.service
-+      import dbus.glib
-+
-+OBJ_PATH = '/org/gajim/dbus/RemoteObject'
-+INTERFACE = 'org.gajim.dbus.RemoteInterface'
-+SERVICE = 'org.gajim.dbus'
-+BASENAME = 'gajim-remote'
-+
-+class GajimRemote:
-+      
-+      def __init__(self):
-+              self.argv_len = len(sys.argv) 
-+              # define commands dict. Prototype :
-+              # {
-+              #       'command': [comment, [list of arguments] ]
-+              # }
-+              #
-+              # each argument is defined as a tuple:
-+              #    (argument name, help on argument, is mandatory)
-+              #
-+              self.commands = {
-+                      'help':[
-+                                      _('show a help on specific command'),
-+                                      [
-+                                              #parameter, named "on_command". 
User gets help for the command, specified by this parameter
-+                                              (_('on_command'), 
-+                                              _('show help on command'), 
False)
-+                                      ]
-+                              ], 
-+                      'toggle_roster_appearance' : [
-+                                      _('Shows or hides the roster window'),
-+                                      []
-+                              ], 
-+                      'show_next_unread': [
-+                                      _('Popup a window with the next unread 
message'),
-+                                      []
-+                              ],
-+                      'list_contacts': [
-+                                      _('Print a list of all contacts in the 
roster. \
-+Each contact appear on a separate line'),
-+                                      [
-+                                              (_('account'), _('show only 
contacts of the \
-+given account'), False)
-+                                      ]
-+                                      
-+                              ],      
-+                      'list_accounts': [
-+                                      _('Print a list of registered 
accounts'),
-+                                      []
-+                              ], 
-+                      'change_status': [
-+                                      _('Change the status of account or 
accounts'),
-+                                      [
-+                                              (_('status'), _('one of: 
offline, online, chat, away, \
-+xa, dnd, invisible '), True), 
-+                                              (_('message'), _('status 
message'), False), 
-+                                              (_('account'), _('change status 
of account "account". \
-+If not specified, try to change status of all accounts that \
-+have "sync with global status" option set'), False)
-+                                      ]
-+                              ],
-+                      'open_chat': [ 
-+                                      _('Show the chat dialog so that you can 
send message to a \
-+contact'), 
-+                                      [
-+                                              #tell nkour that should be JID 
of the contact
-+                                              ('jid', _('jid of the contact 
that you want to chat \
-+with'),
-+                                                      True), 
-+                                              (_('account'), _('if specified, 
contact is taken from \
-+the contact list of this account'), False)
-+                                      ]
-+                              ],
-+                      'send_message':[
-+                                      #OpenPGP key here too (tlel that to 
nkour)
-+                                      _('Send new message to a contact in the 
roster. Both OpenPGP \
-+key and account are optional. If you want to set only \'account\', without \
-+\'pgp key\', just set \'pgp key\' to \'\'.'), 
-+                                      [
-+                                              #tell nkour that should be JID 
of the contact
-+                                              ('jid', _('jid of the contact 
that will receive the \
-+message'), True),
-+                                              (_('message'), _('message 
contents'), True),
-+                                              #tell to nkour it should be 
OpenPGP key
-+                                              (_('pgp key'), _('if specified, 
the message will be \
-+encrypted using this public key'), False),
-+                                              (_('account'), _('if specified, 
the message will be \
-+sent using this account'), False),
-+                                      ]
-+                              ], 
-+                      'contact_info': [
-+                                      _('Get detailed info on a contact'), 
-+                                      [
-+                                              #JID of the contact (tell that 
to nkour)
-+                                              ('jid', _('jid of the 
contact'), True)
-+                                      ]
-+                              ]
-+                      }
-+              if self.argv_len  < 2 or \
-+                      sys.argv[1] not in self.commands.keys(): # no args or 
bad args
-+                      self.send_error(self.compose_help())
-+              self.command = sys.argv[1]
-+              
-+              if self.command == 'help':
-+                      if self.argv_len == 3:
-+                              print self.help_on_command(sys.argv[2])
-+                      else:
-+                              print self.compose_help()
-+                      sys.exit()
-+              
-+              self.init_connection()
-+              self.check_arguments()
-+              
-+              if self.command == 'contact_info':
-+                      if self.argv_len < 3:
-+                              self.send_error(_('Missing argument 
"contact_jid"'))
-+                      try:
-+                              id = 
self.sbus.add_signal_receiver(self.show_vcard_info, 
-+                                      'VcardInfo', INTERFACE, SERVICE, 
OBJ_PATH)
-+                      except:
-+                              self.send_error(_('Service not available'))
-+              
-+              res = self.call_remote_method()
-+              self.print_result(res)
-+              
-+              if self.command == 'contact_info':
-+                      gobject.timeout_add(10000, self.gtk_quit) # wait 10 sec 
for response
-+                      gtk.main()
-+      
-+      def print_result(self, res):
-+              ''' Print retrieved result to the output '''
-+              if res is not None:
-+                      if self.command in ['open_chat', 'send_message']:
-+                              if self.command == 'send_message':
-+                                      self.argv_len -= 2
-+                              
-+                              if res == False:
-+                                      if self.argv_len < 4:
-+                                              self.send_error(_('\'%s\' is 
not in your roster.\n\
-+Please specify account for sending the message.') % sys.argv[2])
-+                                      else:
-+                                              self.send_error(_('You have no 
active account'))
-+                      elif self.command == 'list_accounts':
-+                              if type(res) == list:
-+                                      for account in res:
-+                                              print account
-+                      elif self.command == 'list_contacts':
-+                              for single_res in res:
-+                                      accounts = self.unrepr(single_res)
-+                                      for account_dict in accounts:
-+                                              print self.print_info(0, 
account_dict)
-+                      elif res:
-+                              print res
-+      
-+      def init_connection(self):
-+              ''' create the onnection to the session dbus,
-+              or exit if it is not possible '''
-+              try:
-+                      self.sbus = dbus.SessionBus()
-+              except:
-+                      self.send_error(_('Session bus is not available.'))
-+              
-+              if _version[1] >= 30 and _version[1] <= 42:
-+                      obj = self.sbus.get_object(SERVICE, OBJ_PATH)
-+                      interface = dbus.Interface(obj, INTERFACE)
-+              elif _version[1] < 30:
-+                      self.service = self.sbus.get_service(SERVICE)
-+                      interface = self.service.get_object(OBJ_PATH, INTERFACE)
-+              else:
-+                      #say to nkour that this should be Unknown D-Bus 
version: %s (thanks nebulam)
-+                      send_error(_('Unknown dbus version: %s') % _version)
-+                      
-+              # get the function asked
-+              self.method = interface.__getattr__(self.command)
-+              
-+      def make_arguments_row(self, args):
-+              ''' return arguments list. Mandatory arguments are enclosed 
with:
-+              '<', '>', optional arguments - with '[', ']' '''
-+              str = ''
-+              for argument in args:
-+                      str += ' '
-+                      if argument[2]:
-+                              str += '<'
-+                      else:
-+                              str += '['
-+                      str += argument[0]
-+                      if argument[2]:
-+                              str += '>'
-+                      else:
-+                              str += ']'
-+              return str
-+              
-+      def help_on_command(self, command):
-+              ''' return help message for a given command '''
-+              if command in self.commands:
-+                      command_props = self.commands[command]
-+                      arguments_str = 
self.make_arguments_row(command_props[1])
-+                      str = _('Usage: %s %s %s \n\t') % (BASENAME, command, 
-+                                      arguments_str)
-+                      str += command_props[0] + '\n\n' + _('Arguments:') + 
'\n'
-+                      for argument in command_props[1]:
-+                              str += ' ' +  argument[0] + ' - ' + argument[1] 
+ '\n'
-+                      return str
-+              self.send_error(_('%s not found') % command)
-+                      
-+      def compose_help(self):
-+              ''' print usage, and list available commands '''
-+              str = _('Usage: %s command [arguments]\nCommand is one of:\n' ) 
% BASENAME
-+              for command in self.commands.keys():
-+                      str += '  ' + command 
-+                      for argument in self.commands[command][1]:
-+                              str += ' '
-+                              if argument[2]:
-+                                      str += '<'
-+                              else:
-+                                      str += '['
-+                              str += argument[0]
-+                              if argument[2]:
-+                                      str += '>'
-+                              else:
-+                                      str += ']'
-+                      str += '\n'
-+              return str
-+              
-+      def print_info(self, level, prop_dict):
-+              ''' return formated string from serialized vcard data '''
-+              if prop_dict is None or type(prop_dict) \
-+                      not in [dict, list, tuple]:
-+                      return ''
-+              ret_str = ''
-+              if type(prop_dict) in [list, tuple]:
-+                      ret_str = ''
-+                      spacing = ' ' * level * 4
-+                      for val in prop_dict:
-+                              if val is None:
-+                                      ret_str +='\t'
-+                              elif type(val) == unicode or type(val) == int 
or \
-+                                      type(val) == str:
-+                                      ret_str +='\t' + str(val)
-+                              elif type(val) == list or type(val) == tuple:
-+                                      res = ''
-+                                      for items in val:
-+                                              res += self.print_info(level+1, 
items)
-+                                      if res != '':
-+                                              ret_str += '\t' + res
-+                      ret_str = '%s(%s)\n' % (spacing, ret_str[1:])
-+              elif type(prop_dict) is dict:
-+                      for key in prop_dict.keys():
-+                              val = prop_dict[key]
-+                              spacing = ' ' * level * 4
-+                              if type(val) == unicode or type(val) == int or \
-+                                      type(val) == str:
-+                                      if val is not None:
-+                                              val = val.strip()
-+                                              ret_str += '%s%-10s: %s\n' % 
(spacing, key, val)
-+                              elif type(val) == list or type(val) == tuple:
-+                                      res = ''
-+                                      for items in val:
-+                                              res += self.print_info(level+1, 
items)
-+                                      if res != '':
-+                                              ret_str += '%s%s: \n%s' % 
(spacing, key, res)
-+                              elif type(val) == dict:
-+                                      res = self.print_info(level+1, val)
-+                                      if res != '':
-+                                              ret_str += '%s%s: \n%s' % 
(spacing, key, res)
-+                              else:
-+                                      self.send_warning(_('Unknown type %s ') 
% type(val))
-+              return ret_str
-+              
-+      def unrepr(self, serialized_data):
-+              ''' works the same as eval, but only for structural values, 
-+              not functions! e.g. dicts, lists, strings, tuples '''
-+              if not serialized_data:
-+                      return (None, '') 
-+              value = serialized_data.strip()
-+              first_char = value[0]
-+              is_unicode  = False
-+              is_int  = False
-+              
-+              if first_char == 'u':
-+                      is_unicode = True
-+                      value = value[1:]
-+                      first_char = value[0]
-+              elif '0123456789.'.find(first_char) != -1:
-+                      is_int = True
-+                      _str = first_char
-+                      if first_char == '.':
-+                              is_float = True
-+                      else:
-+                              is_float =  False
-+                      for i in range(len(value) - 1):
-+                              chr = value[i+1]
-+                              if chr == '.':
-+                                      is_float = True
-+                              elif '0123456789'.find(chr) == -1:
-+                                      break
-+                              _str += chr
-+                      if is_float:
-+                              return (float(_str), value[len(_str):])
-+                      else:
-+                              return (int(_str), value[len(_str):])
-+              elif first_char == 'N':
-+                      if value[1:4] == 'one':
-+                              return (None, value[4:])
-+                      else:
-+                              return (None, '')
-+              if first_char == "'" or first_char == '"': # handle strings and 
unicode
-+                      if len(value) < 2:
-+                              return ('',value[1:])
-+                      _str = ''
-+                      previous_slash = False
-+                      for i in range(len(value) - 1):
-+                              chr = value[i+1]
-+                              if previous_slash:
-+                                      previous_slash = False
-+                                      if chr == '\\':
-+                                              _str += '\\'
-+                                      elif chr == 'n':
-+                                              _str += '\n'
-+                                      elif chr == 't':
-+                                              _str += '\t'
-+                                      elif chr == 'r':
-+                                              _str += '\r'
-+                                      elif chr == 'b':
-+                                              _str += '\b'
-+                                      elif chr == '\'':
-+                                              _str += '\''
-+                                      elif chr == '\"':
-+                                              _str += '\"'
-+                                      elif chr == 'u' and is_unicode:
-+                                              _str += '\\u'
-+                              elif chr == first_char:
-+                                      break
-+                              elif chr == '\\':
-+                                      previous_slash = True
-+                              else:
-+                                      _str += chr
-+                      substr_len = len(_str)+2
-+                      if is_unicode and _str:
-+                              _str = 
_str.decode('unicode-escape').encode('utf-8')
-+                      return (_str, value[substr_len :])
-+              elif first_char == '{': # dict
-+                      _dict = {}
-+                      while True:
-+                              if value[1] == '}':
-+                                      break
-+                              key, next = self.unrepr(value[1:])
-+                              if type(key) != str and type(key) != unicode:
-+                                      send_error('Wrong string: %s' % value)
-+                              next = next.strip()
-+                              if not next or next[0] != ':':
-+                                      send_error('Wrong string: %s' % (value))
-+                              val, next = self.unrepr(next[1:])
-+                              _dict[key] = val
-+                              next = next.strip()
-+                              if not next:
-+                                      break
-+                              if next[0] == ',':
-+                                      value = next
-+                              elif next[0] == '}':
-+                                      break
-+                              else:
-+                                      break
-+                      return (_dict, next[1:])
-+              elif first_char in ['[', '(']: # return list 
-+                      _tuple = []
-+                      while True:
-+                              if value[1] == ']':
-+                                      break
-+                              val, next = self.unrepr(value[1:])
-+                              next = next.strip()
-+                              if not next:
-+                                      send_error('Wrong string: %s' % val)
-+                              _tuple.append(val)
-+                              next = next.strip()
-+                              if not next:
-+                                      break
-+                              if next[0] == ',':
-+                                      value = next
-+                              elif next[0] in [']', ')']:
-+                                      break
-+                      return (_tuple, next[1:])
-+              
-+      def show_vcard_info(self, *args, **keyword):
-+              ''' write user vcart in a formated output '''
-+              props_dict = None
-+              if _version[1] >= 30:
-+                      props_dict = self.unrepr(args[0])
-+              else:
-+                      if args and len(args) >= 5:
-+                              props_dict = 
self.unrepr(args[4].get_args_list()[0])
-+
-+              if props_dict:
-+                      print self.print_info(0,props_dict[0])
-+              # remove_signal_receiver is broken in lower versions (< 0.35), 
-+              # so we leave the leak - nothing can be done
-+              if _version[1] >= 41:
-+                      self.sbus.remove_signal_receiver(show_vcard_info, 
'VcardInfo', 
-+                              INTERFACE, SERVICE, OBJ_PATH)
-+      
-+              gtk.main_quit()
-+              
-+      def check_arguments(self):
-+              ''' Make check if all necessary arguments are given '''
-+              argv_len = self.argv_len - 2
-+              args = self.commands[self.command][1]
-+              if len(args) > argv_len:
-+                      if args[argv_len][2]:
-+                              self.send_error(_('Argument "%s" is not 
specified. \n\
-+Type "%s help %s" for more info') % (args[argv_len][0], BASENAME, 
self.command))
-+
-+      def gtk_quit(self):
-+              if _version[1] >= 41:
-+                      self.sbus.remove_signal_receiver(show_vcard_info, 
'VcardInfo', 
-+                              INTERFACE, SERVICE, OBJ_PATH)
-+              gtk.main_quit()
-+      
-+      # FIXME - didn't find more clever way for the below method.
-+      # method(sys.argv[2:]) doesn't work, cos sys.argv[2:] is a tuple
-+      def call_remote_method(self):
-+              ''' calls self.method with arguments from sys.argv[2:] '''
-+              try:
-+                      if self.argv_len == 2:
-+                              res = self.method()
-+                      elif self.argv_len == 3:
-+                              res = self.method(sys.argv[2])
-+                      elif self.argv_len == 4:
-+                              res = self.method(sys.argv[2], sys.argv[3])
-+                      elif self.argv_len == 5:
-+                              res = self.method(sys.argv[2], sys.argv[3], 
sys.argv[4])
-+                      elif argv_len == 6:
-+                              res = self.method(sys.argv[2], sys.argv[3], 
sys.argv[4], 
-+                                      sys.argv[5])
-+                      return res
-+              except:
-+                      self.send_error(_('Service not available'))
-+              return None
-+
-+      def send_error(self, error_message):
-+              '''  Writes error message to stderr and exits '''
-+              sys.stderr.write(error_message + '\n')
-+              sys.stderr.flush()
-+              sys.exit(1)
-+
-+if __name__ == '__main__':
-+      GajimRemote()
-diff -urN gajim-0.8.orig/src/i18n.py gajim-0.8/src/i18n.py
---- gajim-0.8.orig/src/i18n.py 1970-01-01 01:00:00.000000000 +0100
-+++ gajim-0.8/src/i18n.py      2005-08-19 13:05:59.485258744 +0200
-@@ -0,0 +1,41 @@
-+##    common/i18n.py
-+##
-+## Gajim Team:
-+##  - Yann Le Boulanger <[EMAIL PROTECTED]>
-+##  - Vincent Hanquez <[EMAIL PROTECTED]>
-+##  - Nikos Kouremenos <[EMAIL PROTECTED]>
-+##  - Dimitur Kirov <[EMAIL PROTECTED]>
-+##
-+##    Copyright (C) 2003-2005 Gajim Team
-+##
-+## This program is free software; you can redistribute it and/or modify
-+## it under the terms of the GNU General Public License as published
-+## by the Free Software Foundation; version 2 only.
-+##
-+## This program is distributed in the hope that it will be useful,
-+## but WITHOUT ANY WARRANTY; without even the implied warranty of
-+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+## GNU General Public License for more details.
-+##
-+
-+APP='gajim'
-+DIR='../po'
-+
-+import locale
-+import gettext
-+
-+locale.setlocale(locale.LC_ALL, '')
-+_translation = None
-+
-+def init():
-+      global _translation
-+      try:
-+              _translation = gettext.translation(APP, DIR)
-+      except IOError:
-+              _translation = gettext.NullTranslations()
-+
-+def _(s):
-+      if s == '':
-+              return s
-+      assert s
-+      return _translation.gettext(s)
+diff -urN gajim-0.8.1.orig/scripts/gajim-remote.py 
gajim-0.8.1/scripts/gajim-remote.py
+--- gajim-0.8.1.orig/scripts/gajim-remote.py   2005-09-04 12:48:06.976356960 
+0200
++++ gajim-0.8.1/scripts/gajim-remote.py        2005-09-04 12:56:38.362614432 
+0200
+@@ -32,7 +32,7 @@
+ 
+ signal.signal(signal.SIGINT, signal.SIG_DFL) # ^C exits the application
+ 
+-import i18n
++from common import i18n
+ 
+ _ = i18n._
+ i18n.init()
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/gajim-remote.patch?r1=1.1&r2=1.2&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to