diff --git a/doli b/doli new file mode 100755 index 0000000000000000000000000000000000000000..c449676e513adf69a80c88504f23a49c33917001 --- /dev/null +++ b/doli @@ -0,0 +1,99 @@ +#!/bin/bash + +is_docker() { + if [ ! -z "$(which docker-compose 2>/dev/null)" ]; + then + echo "1" + else + echo "0" + fi +} + +usage() { + echo -e "Usage $0 <command> [args]\n" + echo -e "COMMANDS\n" + echo "bash" + echo -e "\topens a bash terminal in front container or just run bash" + echo "down" + echo -e "\t stops the docker stack" + echo "help" + echo -e "\t displays this messages and exit" + echo "mysql" + echo -e "\topen a mysql prompt in LNB database" + echo "mysql_init" + echo -e "\tpopulate LabNbook database (Docker only)" + echo "restart" + echo -e "\t restart the docker stack or apache2" + echo "shell" + echo -e "\trun a php shell, same as $0 artisan tinker" + echo "up" + echo -e "\t starts the docker stack" +} + +if [ "$(is_docker)" -eq 1 ]; then + cmd="docker-compose exec dolibarr" + cmdmy="docker-compose exec mariadb" + cmdmyInput="docker exec -i $(docker-compose ps -q mariadb)" + cmdrestart="docker-compose restart" + cmdup="docker-compose up" + cmddown="docker-compose down" +else + cmdrestart="apache2ctl restart" +fi + +user=dolibarr +db=dolibarr +pass=$(awk -F '=' '/PASS/{print $2}' .env) +mysql="mysql -u $user $db -p$pass" + +DIR="$(dirname $0)" + +action=$1 +shift +# Keep actions sorted +case $action in + "bash") + $cmd bash + ;; + "down") + $cmddown + ;; + "help") + usage + ;; + "mysql") + set -x + $cmdmy $mysql + set +x + ;; + "mysql_init") + read -p "Do you want to init your database with default data? This command will erase your current data. (y/n). " yn + case $yn in + [Yy]* ) + zcat dumps/internal.sql.gz | $cmdmyInput $mysql + ;; + [Nn]* ) + exit + ;; + * ) + echo "Please answer yes or no.";; + esac + ;; + "restart") + $cmdrestart $@ + ;; + "shell") + if [ $(is_docker) -eq 1 ]; then + docker cp doli_shell.php $(docker-compose ps -q dolibarr):/var/www + fi + $cmd php -a -d auto_prepend_file=/var/www/doli_shell.php + ;; + "up") + $cmdup $@ + ;; + *) + echo "ERROR: No command given" + usage + exit 1 + ;; +esac diff --git a/doli_shell.php b/doli_shell.php new file mode 100644 index 0000000000000000000000000000000000000000..268651949f2a684624758823c7d3bbd6c13ec47e --- /dev/null +++ b/doli_shell.php @@ -0,0 +1,52 @@ +<?php +/** + * Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> + * Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +/** + * \file scripts/user/sync_groups_dolibarr2ldap.php + * \ingroup ldap core + * \brief Script de mise a jour des groupes dans LDAP depuis base Dolibarr + */ + +if (!defined('NOSESSION')) { + define('NOSESSION', '1'); +} + +function dd($data) { + echo json_encode($data, JSON_PRETTY_PRINT); +} + +function query($raw) { + global $db; + return $db->query($raw); +} + +function fetch($raw) { + global $db; + $resql = query($raw); + if ($resql) { + return $db->fetch_object($resql); + } + return null; +} + +$sapi_type = php_sapi_name(); +$script_file = basename(__FILE__); +$path = __DIR__.'/'; + +include "/var/www/dolibarr/htdocs/master.inc.php";