Salome HOME
untabify
[modules/kernel.git] / src / Utils / Utils_Identity.py
1 #! /usr/bin/env python
2 #  -*- coding: iso-8859-1 -*-
3 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
4 #
5 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
6 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
7 #
8 #  This library is free software; you can redistribute it and/or
9 #  modify it under the terms of the GNU Lesser General Public
10 #  License as published by the Free Software Foundation; either
11 #  version 2.1 of the License.
12 #
13 #  This library is distributed in the hope that it will be useful,
14 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
15 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 #  Lesser General Public License for more details.
17 #
18 #  You should have received a copy of the GNU Lesser General Public
19 #  License along with this library; if not, write to the Free Software
20 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21 #
22 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 #
24 #  SALOME Utils : general SALOME's definitions and tools
25 #  File   : Utils_Identity.py
26 #  Author : Estelle Deville, CEA
27 #  Module : SALOME
28 #  $Header$
29 #
30 ## @package Utils_Identity
31 # \brief Module to get information about user and version
32 #
33 #
34
35 import sys
36 import os
37 import socket
38
39 if not sys.platform == "win32":
40     import pwd
41
42 import time
43 import string
44
45 def getShortHostName():
46     """
47     gives Hostname without domain extension.
48
49     SALOME naming service needs short Hostnames (without domain extension).
50     HOSTNAME is not allways defined in environment,
51     socket.gethostname() gives short or complete Hostname, depending on
52     defined aliases.
53     """
54     return string.split(socket.gethostname(),'.')[0]
55
56 class Identity:
57     def __init__(self,name):
58         self._name = name
59         self._pid =  os.getpid()
60         self._machine = socket.gethostname()
61         self._adip =  socket.gethostbyname(self._machine) # IP adress        
62         if sys.platform == "win32":
63           self._uid  = os.getpid() 
64           self._pwname = os.environ["USER"]
65         else:
66           self._uid = os.getuid()
67           list = pwd.getpwuid(self._uid)
68           self._pwname  = list[0] # user name
69
70         self._tc_start = time.time()
71         self._cstart    = time.ctime(self._tc_start)
72         self._cdir = os.getcwd()
73
74 def getapplipath():
75     """
76       Gives short application path (the complete path is $HOME/$APPLI)
77     """
78     return os.environ.get("APPLI",".salome_"+versnb)
79
80 try:
81   file = open(os.path.join(os.environ["KERNEL_ROOT_DIR"],"bin","salome","VERSION"), "r")
82   s = file.readline()
83   versnb = string.strip(string.split(s, ":")[1])
84   dirname=".salome_"+versnb
85 except:
86   versnb = ""
87   dirname=".salome"
88
89 def version():
90     """
91       Gives salome version number
92     """
93     return versnb