source: lliurex-detect/trunk/fuentes/lliurex-detect.install/usr/bin/lliurex-detect @ 3121

Last change on this file since 3121 was 3121, checked in by Juanma, 4 years ago

Initial release

  • Property svn:executable set to *
File size: 1.7 KB
Line 
1#!/usr/bin/env python
2import sys
3import os 
4from subprocess import check_output
5ltsConfFile="/etc/lts.conf"
6result=[]
7
8def show_help():
9        print ("Usage: lliurex-detect [-t] [-f]\n\t -t show type\n\t -f show flavour\n")
10        exit(1)
11#def show_help
12
13def detect_flavour():
14        try:
15                flavour=check_output(["lliurex-version","-v"]).split(",")[-1]
16        except Exception as e:
17                print ("Can't check flavour: lliurex-version not installed")
18                exit(1)
19        return flavour.strip()
20#def detect_flavour
21
22def detect_type():
23        display=os.environ.get('DISPLAY')
24        #On thin clients display is ip+display so it's at least 7 chars
25        if len(display)>= 7:
26                client_type='thin'
27        else:
28                if os.path.exists(ltsConfFile):
29                #Attempt to open lts.conf as is more reliable than check environment
30                        try:
31                                for line in open (ltsConfFile):
32                                        if line=="LTSP_FATCLIENT":
33                                                if "true" in line:
34                                                        client_type="semi"
35                                                else:
36                                                        if "true" in line:
37                                                                client_type="thin"
38                                                        else:
39                                                                client_type="unknown"
40                                                break
41                                ltsConfFile.close()
42                        except:
43                                fatclient=os.environ.get('LTSP_FATCLIENT')
44                                if fatclient=='true':
45                                        client_type="semi"
46                                else:
47                                        if fatclient=='false':
48                                                client_type="thin"
49                                        else:
50                                                client_type="unknown"
51                else:
52                        client_type='fat'
53        return client_type.rstrip()
54#def detect_type
55
56def process_parms():
57        for parm in sys.argv:
58                error=1
59                if (parm=="-t"):
60                        result.append(detect_type())
61                        error=0
62                if (parm=="-f"):
63                        result.append(detect_flavour())
64                        error=0
65        if (error==1):
66                show_help()
67        return result
68#def process_parms
69
70if (len(sys.argv) > 1):
71        process_parms()
72else:
73        result.append(detect_type())
74        result.append(detect_flavour())
75
76
77print (','.join(result))
78
79exit (0)
Note: See TracBrowser for help on using the repository browser.