OILS / soil / diagnose.sh View on Github | oils.pub

142 lines, 97 significant
1#!/usr/bin/env bash
2#
3# Usage:
4# soil/diagnose.sh <function name>
5
6: ${LIB_OSH=stdlib/osh}
7source $LIB_OSH/bash-strict.sh
8source $LIB_OSH/task-five.sh
9
10source soil/common.sh # dump-env
11
12dump-timezone() {
13
14 # On Travis:
15 # /usr/share/zoneinfo/UTC
16 # On my machine
17 # /usr/share/zoneinfo/America/Los_Angeles
18
19 if command -v file; then
20 file '/etc/localtime'
21 fi
22 echo
23 read md5 _ <<< $(md5sum /etc/localtime)
24 log "md5 = $md5"
25 find /usr/share/zoneinfo -type f | xargs md5sum | grep $md5
26 echo
27}
28
29dump-versions() {
30 set +o errexit
31
32 source build/dev-shell.sh # python3 may be here
33
34 set -x
35 which python2
36 python2 -V
37
38 which python3
39 python3 -V
40
41 which gcc
42 gcc --version
43 set +x
44}
45
46dump-locale() {
47 set -x
48 # show our locale
49 locale
50
51 # show all locales
52 locale -a
53 set +x
54}
55
56dump-hardware() {
57 egrep '^(processor|model name)' /proc/cpuinfo
58 echo
59
60 egrep '^Mem' /proc/meminfo
61 echo
62
63 df -h
64 echo
65}
66
67dump-distro() {
68 local path=/etc/os-release
69 if test -f $path; then
70 cat $path
71 else
72 echo "$path doesn't exist"
73 fi
74 echo
75
76 if command -v apt-cache > /dev/null; then
77 apt-cache policy r-base-core
78 fi
79}
80
81dump-user-host() {
82 echo -n 'whoami = '
83 whoami
84 echo
85
86 echo "PWD = $PWD"
87 echo
88
89 if command -v hostname > /dev/null; then
90 echo -n 'hostname = '
91 hostname
92 else
93 # Fedora
94 echo 'hostname command missing'
95 fi
96 echo
97
98 uname -a
99 echo
100
101 who
102 echo
103}
104
105dump-tty() {
106 echo TTY
107 tty || true
108}
109
110os-info() {
111 dump-user-host
112 echo
113
114 dump-tty
115 echo
116
117 dump-distro
118 echo
119
120 dump-versions
121 echo
122
123 dump-locale
124 echo
125
126 dump-timezone
127 echo
128
129 dump-hardware
130 echo
131
132 # Process limits
133 echo 'Soft limits:'
134 ulimit -S -a
135 echo
136 echo 'Hard limits:'
137 ulimit -H -a
138 echo
139}
140
141task-five "$@"
142