Сравнение постов
Различия между постами
#261768 (13.04.2022 10:53)
и
#274660 (23.05.2024 09:08).
1 | #!/bin/sh | |
2 | ||
3 | s_term() { | |
4 | #EC_OK | |
5 | exit 0 | |
6 | } | |
7 | ||
8 | trap s_term 15 | |
9 | ||
10 | die() { | |
1 | ПОЛУЧИТЬ ИНФОРМАЦИЮ НА WHATSAPP https://ellman.ru/basic | |
2 | ||
3 | Разрез и коагуляция позволяет одновременно проводить две эти процедуры https://ellman.ru/diamond | |
4 | ||
5 | Генератор радиоволновой 4,0 МГц | |
6 | Страна США Бренд ELLMAN Гарантия 1 год Рабочая частота 4,0 МГц Напряжение в сети 220В Максимальная выходная мощность, Вт 90 Габаритные размеры 230 х 130 х 340 мм Масса 9 кг https://ellman.ru/tips | |
7 | ||
8 | ||
9 | * Комплект поставки и каталожные номера могут быть изменены производителем https://ellman.ru/basic | |
10 | ||
11 | retval=$1 | |
12 | shift | |
13 | echo "Fatal error: $*" >&2 | |
14 | exit $retval | |
15 | } | |
16 | ||
17 | warning() { | |
18 | echo "Warning: $*" >&2 | |
19 | } | |
20 | ||
21 | debug() { | |
22 | if [ -n "$DEBUG" ] ; then | |
23 | echo "Debug: $*" >&2 | |
24 | fi | |
25 | } | |
26 | ||
27 | get_platform() { | |
28 | uname -s | LC_ALL=C tr '[A-Z]' '[a-z]' | |
29 | } | |
30 | ||
31 | get_lib_path() { | |
32 | binary="$1" | |
33 | lib="$2" | |
34 | $LDD $LDD_RECURSIVE "$binary" 2>&1 | grep "$lib" | head -n1 | while read lib dummy path ; do echo $path ; done | cut -d' ' -f1 | |
35 | } | |
36 | ||
37 | binary_grep() { | |
38 | pattern="$1" | |
39 | binary="$2" | |
40 | [ -r "$binary" ] || return 1 | |
41 | env LC_ALL=C tr -dc '[:print:]' < "$binary" | grep -F "$pattern" >/dev/null 2>&1 | |
42 | } | |
43 | ||
44 | append_to_library_path() { | |
45 | debug "Append \"$1\" to LD_LIBRARY_PATH" | |
46 | if [ -d "$LIBDIR/$1" ] ; then | |
47 | true | |
48 | else | |
49 | debug "\"$1\" is not a directory" | |
50 | return | |
51 | fi | |
52 | LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${LIBDIR}/$1" | |
53 | export LD_LIBRARY_PATH | |
54 | } | |
55 | ||
56 | run() { | |
57 | libs="" | |
58 | loader="" | |
59 | if [ "$PLATFORM" = "linux" ] ; then | |
60 | lddOutput="`LANGUAGE=C LANG=C $LDD $LDD_RECURSIVE "$BINARY" 2>&1`" | |
61 | if echo "$lddOutput" | grep gzopen64 >/dev/null 2>&1 ; then | |
62 | append_to_library_path "ldwrap/libz.so.1" | |
63 | fi | |
64 | elif [ "$PLATFORM" = "freebsd" ] ; then | |
65 | #rpath doesn't work here | |
66 | append_to_library_path "" | |
67 | #own gcc prefer for BSD | |
68 | append_to_library_path "ldwrap/gcc" | |
69 | fi | |
70 | if binary_grep "libstdc++.so.6" "$BINARY" ; then | |
71 | libpath="`get_lib_path "$BINARY" "libstdc++.so.6" 2>/dev/null`" | |
72 | if binary_grep "CXXABI_$MIN_CXXABI" "$libpath" ; then | |
73 | true | |
74 | else | |
75 | append_to_library_path "ldwrap/gcc" | |
76 | fi | |
77 | fi | |
78 | for i in 1 2; do | |
79 | libs="`LANGUAGE=C LANG=C $LDD $LDD_RECURSIVE "$BINARY" 2>&1 | \ | |
80 | grep 'not found' | awk '{print $1}'| sort | uniq`" | |
81 | if [ -z "$libs" ]; then break; fi | |
82 | for lib in $libs ; do | |
83 | append_to_library_path "ldwrap/$lib" | |
84 | done | |
85 | done | |
86 | ||
87 | debug "Finally LD_LIBRARY_PATH is \"$LD_LIBRARY_PATH\"" | |
88 | if [ -n "$loader" ] ; then | |
89 | exec $LOADER "$BINARY" "$@" | |
90 | retval=$? | |
91 | else | |
92 | exec "$BINARY" "$@" | |
93 | retval=$? | |
94 | fi | |
95 | return $retval | |
96 | } | |
97 | ||
98 | LDD="/usr/bin/ldd" | |
99 | [ -x "$LDD" ] || die 125 "ldd not found. Fix PATH and try again." | |
100 | ||
101 | PLATFORM=linux | |
102 | PREFIX=/opt/drweb.com | |
103 | LIBDIR=/opt/drweb.com/lib/x86_64-linux-gnu | |
104 | CONFDIR=/etc/opt/drweb.com | |
105 | ||
106 | BINARY="$PREFIX/bin/`basename "$0.real"`" | |
107 | LINKNAME="`basename "$0"`" | |
108 | ||
109 | [ -x "$BINARY" ] || die 104 "$BINARY not found or not executable" | |
110 | ||
111 | if [ -d "$CONFDIR/ldwrap.conf.d" ] ; then | |
112 | for f in $CONFDIR/ldwrap.conf.d/*.conf ; do | |
113 | [ -r "$f" ] && . "$f" | |
114 | done | |
115 | fi | |
116 | ||
117 | MIN_CXXABI=1.3.12 | |
118 | if [ -n "$ARGS" ] ; then | |
119 | run "$@" "$ARGS" | |
120 | else | |
121 | run "$@" | |
122 | fi | |
123 | exit $? |