-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbitrix
More file actions
executable file
·115 lines (101 loc) · 3.11 KB
/
bitrix
File metadata and controls
executable file
·115 lines (101 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/bash
# Входная точка во все исполняемые файлы
# Цели:
# Выбор интерпретатора PHP
# Управление конфигурацией
# Запуск программ (не все подпрограммы работают на PHP)
# Файл настроек
if [[ -e ~/.bitrix-cli ]]; then
source ~/.bitrix-cli
fi
# Путь к PHP определяется приоритетом:
# 1. Передан через окружение, например, `export BX_PHP='/usr/bin/php'`
# 2. Определен в конфигурации _BX_PHP
# 3. PHP, вызываемый по-умолчанию
# @see README.md
# Коды ошибок @see http://www.tldp.org/LDP/abs/html/exitcodes.html
# @see https://stackoverflow.com/questions/1101957/are-there-any-standard-exit-status-codes-in-linux
if [[ ! -z "$BX_PHP" ]]; then
PHP="$BX_PHP"
elif [[ ! -z "$_BX_PHP" ]]; then
PHP="$_BX_PHP"
else
PHP=`which php`
if [[ "$?" != "0" ]]; then
echo "PHP not found"
exit 127
fi
fi
# LANGUAGE_ID Битрикса, так как LANGUAGE_ID привязан к переменным веб-сервера, а их нет
if [[ ! -z "$BX_LANGUAGE_ID" ]]; then
LANGUAGE_ID="$BX_LANGUAGE_ID"
elif [[ ! -z "$_BX_LANGUAGE_ID" ]]; then
LANGUAGE_ID="$_BX_LANGUAGE_ID"
else
LANGUAGE_ID=ru
fi
# Уровень вывода ошибок
if [[ ! -z "$BX_ERR_REP" ]]; then
ERR_REP="$BX_ERR_REP"
elif [[ ! -z "$_BX_ERR_REP" ]]; then
ERR_REP="$_BX_ERR_REP"
else
ERR_REP='E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED'
fi
# Параметры, которые будут переданы в исполняемые файлы
export BX_ENV_LANGUAGE_ID=$LANGUAGE_ID
export BX_ENV_ERR_REP=$ERR_REP
BX_PHP_PATH="$(readlink -f "$0" | xargs dirname)"
case $1 in
# самотестирование: какая версия PHP будет вызвана, какие параметры будут переданы в PHP
test)
echo -e "PHP: \t\t $PHP"
echo -e "LANGUAGE_ID: \t $LANGUAGE_ID"
echo -e "ERR_REP: \t $ERR_REP"
# $PHP -v
;;
# элементы инфоблока
element)
# передаем все аргументы, кроме первого (первый - это текущий файл)
$PHP $BX_PHP_PATH/bitrix-element.php "${@:2}"
;;
# разделы инфоблока
section)
$PHP $BX_PHP_PATH/bitrix-section.php "${@:2}"
;;
# инфоблоки
iblock)
$PHP $BX_PHP_PATH/bitrix-iblock.php "${@:2}"
;;
# компоненты
component)
$PHP $BX_PHP_PATH/bitrix-component.php "${@:2}"
;;
# ошибки
error)
$PHP $BX_PHP_PATH/bitrix-error.php "${@:2}"
;;
# события
event)
$PHP $BX_PHP_PATH/bitrix-event.php "${@:2}"
;;
# пользователи
user)
$PHP $BX_PHP_PATH/bitrix-user.php "${@:2}"
;;
# файлы
file)
$PHP $BX_PHP_PATH/bitrix-file.php "${@:2}"
;;
# параметры
option)
$PHP $BX_PHP_PATH/bitrix-option.php "${@:2}"
;;
# базы данных
db)
$PHP $BX_PHP_PATH/bitrix-db.php "${@:2}"
;;
*)
echo 'Command not found'
exit 64
esac