Example #1
0
def gui_socket_address():
    global ADDRESS
    if ADDRESS is None:
        if iswindows:
            ADDRESS = r'\\.\pipe\CalibreGUI'
            try:
                user = get_windows_username()
            except:
                user = None
            if user:
                from calibre.utils.filenames import ascii_filename
                user = ascii_filename(user).replace(' ', '_')
                if user:
                    ADDRESS += '-' + user[:100] + 'x'
        else:
            user = os.environ.get('USER', '')
            if not user:
                user = os.path.basename(os.path.expanduser('~'))
            if islinux:
                ADDRESS = (u'\0%s-calibre-gui.socket' % user).encode('ascii')
            else:
                from tempfile import gettempdir
                tmp = gettempdir()
                ADDRESS = os.path.join(tmp, user+'-calibre-gui.socket')
    return ADDRESS
Example #2
0
def viewer_socket_address():
    global VADDRESS
    if VADDRESS is None:
        if iswindows:
            VADDRESS = r'\\.\pipe\CalibreViewer'
            try:
                user = get_windows_username()
            except:
                user = None
            if user:
                user = ascii_filename(user).replace(' ', '_')
                if user:
                    VADDRESS += '-' + user[:100] + 'x'
        else:
            user = os.environ.get('USER', '')
            if not user:
                user = os.path.basename(os.path.expanduser('~'))
            if islinux:
                VADDRESS = (
                    '\0%s-calibre-viewer.socket' %
                    ascii_filename(force_unicode(user))).encode('ascii')
            else:
                from tempfile import gettempdir
                tmp = gettempdir()
                VADDRESS = os.path.join(tmp, user + '-calibre-viewer.socket')
    return VADDRESS
Example #3
0
def gui_socket_address():
    global ADDRESS
    if ADDRESS is None:
        if iswindows:
            ADDRESS = r'\\.\pipe\CalibreGUI'
            try:
                user = get_windows_username()
            except:
                user = None
            if user:
                from calibre.utils.filenames import ascii_filename
                user = ascii_filename(user).replace(' ', '_')
                if user:
                    ADDRESS += '-' + user[:100] + 'x'
        else:
            user = os.environ.get('USER', '')
            if not user:
                user = os.path.basename(os.path.expanduser('~'))
            if islinux:
                ADDRESS = (u'\0%s-calibre-gui.socket' % user).encode('ascii')
            else:
                from tempfile import gettempdir
                tmp = gettempdir()
                ADDRESS = os.path.join(tmp, user + '-calibre-gui.socket')
    return ADDRESS
Example #4
0
def viewer_socket_address():
    if viewer_socket_address.ans is None:
        if iswindows:
            viewer_socket_address.ans = r'\\.\pipe\CalibreViewer'
            try:
                user = get_windows_username()
            except:
                user = None
            if user:
                user = ascii_filename(user).replace(' ', '_')
                if user:
                    viewer_socket_address.ans += '-' + user[:100] + 'x'
        else:
            user = os.environ.get('USER', '')
            if not user:
                user = os.path.basename(os.path.expanduser('~'))
            if islinux:
                viewer_socket_address.ans = (u'\0%s-calibre-viewer.socket' % ascii_filename(force_unicode(user)))
            else:
                from tempfile import gettempdir
                tmp = gettempdir()
                viewer_socket_address.ans = os.path.join(tmp, user+'-calibre-viewer.socket')
        if not ispy3 and not isinstance(viewer_socket_address.ans, bytes):
            viewer_socket_address.ans = viewer_socket_address.ans.encode(filesystem_encoding)
    return viewer_socket_address.ans
Example #5
0
def socket_address(which):
    if iswindows:
        ans = r'\\.\pipe\Calibre' + which
        try:
            user = get_windows_username()
        except Exception:
            user = None
        if user:
            user = ascii_filename(user).replace(' ', '_')
            if user:
                ans += '-' + user[:100] + 'x'
    else:
        user = force_unicode(
            os.environ.get('USER')
            or os.path.basename(os.path.expanduser('~')), filesystem_encoding)
        sock_name = '{}-calibre-{}.socket'.format(
            ascii_filename(user).replace(' ', '_'), which)
        if islinux:
            ans = '\0' + sock_name
        else:
            from tempfile import gettempdir
            tmp = force_unicode(gettempdir(), filesystem_encoding)
            ans = os.path.join(tmp, sock_name)
    if not ispy3 and not isinstance(ans, bytes):
        ans = ans.encode(filesystem_encoding)
    return ans
Example #6
0
def viewer_socket_address():
    if viewer_socket_address.ans is None:
        if iswindows:
            viewer_socket_address.ans = r'\\.\pipe\CalibreViewer'
            try:
                user = get_windows_username()
            except:
                user = None
            if user:
                user = ascii_filename(user).replace(' ', '_')
                if user:
                    viewer_socket_address.ans += '-' + user[:100] + 'x'
        else:
            user = os.environ.get('USER', '')
            if not user:
                user = os.path.basename(os.path.expanduser('~'))
            if islinux:
                viewer_socket_address.ans = (
                    u'\0%s-calibre-viewer.socket' %
                    ascii_filename(force_unicode(user)))
            else:
                from tempfile import gettempdir
                tmp = gettempdir()
                viewer_socket_address.ans = os.path.join(
                    tmp, user + '-calibre-viewer.socket')
        if not ispy3 and not isinstance(viewer_socket_address.ans, bytes):
            viewer_socket_address.ans = viewer_socket_address.ans.encode(
                filesystem_encoding)
    return viewer_socket_address.ans
Example #7
0
 def create_single_instance_mutex(name, per_user=True):
     mutexname = '{}-singleinstance-{}-{}'.format(
         __appname__, (get_windows_username() if per_user else ''), name)
     try:
         mutex = winutil.create_mutex(mutexname, False)
     except FileExistsError:
         return
     return mutex.close
Example #8
0
 def create_single_instance_mutex(name, per_user=True):
     mutexname = '{}-singleinstance-{}-{}'.format(
         __appname__, (get_windows_username() if per_user else ''), name)
     mutex = win32event.CreateMutex(None, False, mutexname)
     if not mutex:
         return
     err = win32api.GetLastError()
     if err == winerror.ERROR_ALREADY_EXISTS:
         # Close this handle other wise this handle will prevent the mutex
         # from being deleted when the process that created it exits.
         win32api.CloseHandle(mutex)
         return
     return partial(win32api.CloseHandle, mutex)
Example #9
0
 def create_single_instance_mutex(name, per_user=True):
     mutexname = '{}-singleinstance-{}-{}'.format(
         __appname__, (get_windows_username() if per_user else ''), name
     )
     mutex = win32event.CreateMutex(None, False, mutexname)
     if not mutex:
         return
     err = win32api.GetLastError()
     if err == winerror.ERROR_ALREADY_EXISTS:
         # Close this handle other wise this handle will prevent the mutex
         # from being deleted when the process that created it exits.
         win32api.CloseHandle(mutex)
         return
     return partial(win32api.CloseHandle, mutex)