Changeset 8237df5


Ignore:
Timestamp:
2007-08-21T22:33:14Z (17 years ago)
Author:
VMiklos <vmiklos@…>
Branches:
master
Children:
43e2e9d
Parents:
924d0f2
Message:

skyped: added daemon code

Location:
skype
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • skype/HACKING

    r924d0f2 r8237df5  
    11I use the following commands to debug bitlbee itself:
    22
    3 gdb bitlbee
     3gdb ./bitlbee
    44run -v -n -D
    55
    66For skyped:
    77
    8 python skyped.py -d
     8python skyped.py -n -d
  • skype/NEWS

    r924d0f2 r8237df5  
    11VERSION         DESCRIPTION
    22-----------------------------------------------------------------------------
     3              - skyped now runs as daemon in the background by default
    34              - skyped now automatically reconnects on Skype restarts
    450.1.0         - initial release
  • skype/README

    r924d0f2 r8237df5  
    122122== What needs to be done (aka. TODO)
    123123
    124 - `--daemon` option for `skyped`
    125 
    126124- document how do I run skype on a server using vnc
    127125
  • skype/skyped.py

    r924d0f2 r8237df5  
    2525#
    2626
    27 # makepkg configuration
    28 """ GPL """
    2927import sys
     28import os
    3029import signal
    3130import locale
     
    3635import gobject
    3736import socket
     37import getopt
    3838
     39__version__ = "0.1.1"
    3940
    4041SKYPE_SERVICE = 'com.Skype.API'
     
    7071
    7172def dprint(msg):
    72         if len(sys.argv) > 1 and sys.argv[1] == "-d":
     73        global options
     74
     75        if options.debug:
    7376                print msg
    7477
     
    114117                return reply
    115118
     119class Options:
     120        def __init__(self):
     121                self.daemon = True
     122                self.debug = False
     123                self.help = False
     124                self.port = 2727
     125                self.version = False
     126
     127        def usage(self, ret):
     128                print """Usage: skyped [OPTION]...
     129
     130skyped is a daemon that acts as a tcp server on top of a Skype instance.
     131
     132Options:
     133        -d      --debug         enable debug messages
     134        -h      --help          this help
     135        -n      --nofork        don't run as daemon in the background
     136        -p      --port          set the tcp port (default: %d)
     137        -v      --version       display version information""" % self.port
     138                sys.exit(ret)
     139
    116140if __name__=='__main__':
     141        options = Options()
     142        try:
     143                opts, args = getopt.getopt(sys.argv[1:], "dhnp:v", ["daemon", "help", "nofork", "port=", "version"])
     144        except getopt.GetoptError:
     145                options.usage(1)
     146        for opt, arg in opts:
     147                if opt in ("-d", "--debug"):
     148                        options.debug = True
     149                elif opt in ("-h", "--help"):
     150                        options.help = True
     151                elif opt in ("-n", "--nofork"):
     152                        options.daemon = False
     153                elif opt in ("-p", "--port"):
     154                        options.port = arg
     155                elif opt in ("-v", "--version"):
     156                        options.version = True
     157        if options.help:
     158                options.usage(0)
     159        elif options.version:
     160                print "skyped %s" % __version__
     161                sys.exit(0)
     162        elif options.daemon:
     163                pid = os.fork()
     164                if pid == 0:
     165                        nullin = file('/dev/null', 'r')
     166                        nullout = file('/dev/null', 'w')
     167                        os.dup2(nullin.fileno(), sys.stdin.fileno())
     168                        os.dup2(nullout.fileno(), sys.stdout.fileno())
     169                        os.dup2(nullout.fileno(), sys.stderr.fileno())
     170                else:
     171                        print 'skyped is started on port %s, pid: %d' % (options.port, pid)
     172                        sys.exit(0)
    117173        dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
    118174        signal.signal(signal.SIGINT, sig_handler)
    119175        mainloop = gobject.MainLoop()
    120         server('localhost', 2727)
     176        server('localhost', options.port)
    121177        while True:
    122178                skype = SkypeApi()
Note: See TracChangeset for help on using the changeset viewer.