158 lines
4.0 KiB
Bash
Executable File
158 lines
4.0 KiB
Bash
Executable File
#!/bin/zsh
|
|
|
|
function help() {
|
|
echo
|
|
echo "$1 <command> [options]"
|
|
echo
|
|
echo "commands:"
|
|
echo
|
|
echo " disable-auto-install Disable auto install for enterprise modules."
|
|
echo " start Start docker container."
|
|
echo " stop Stop docker container."
|
|
echo " kill Remove docker container and volumes."
|
|
echo " start-db Start database container only."
|
|
echo " install-src Install Odoo requirements in source folder."
|
|
echo " init-db Initalize the Odoo database."
|
|
echo " start-src Start Odoo from source folder."
|
|
echo " update-module [name] Update target Odoo module."
|
|
echo " scaffold-src [name] Scaffold new Odoo module from source."
|
|
echo " drop-db [name] Drop target Odoo database."
|
|
echo " compile-managed-modules Package managed Odoo modules."
|
|
echo " copy-managed-modules Copy managed Odoo modules to addon folder."
|
|
echo " remove-managed-modules Remove managed Odoo modules from add folder"
|
|
echo
|
|
}
|
|
|
|
function disable-auto-install() {
|
|
echo "Disable auto install for all enterprise modules."
|
|
find ./enterprise -type f -name '__manifest__.py' -exec sed -i '' $'s/\'auto_install\': True,/\'auto_install\': False,/g' {} +
|
|
}
|
|
|
|
function venv-init() {
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
}
|
|
|
|
function activate-venv() {
|
|
source ../venv/bin/activate
|
|
}
|
|
|
|
function locale() {
|
|
export LC_ALL=en_US.UTF-8
|
|
export LANG=en_US.UTF-8
|
|
}
|
|
|
|
function install-src() {
|
|
cd odoo
|
|
activate-venv
|
|
pip install setuptools psycopg2-binary watchdog phonenumbers
|
|
pip install -r requirements.txt
|
|
cd ..
|
|
}
|
|
|
|
function init-db() {
|
|
cd odoo
|
|
locale
|
|
activate-venv && ./odoo-bin --init base -d odoo --db_host=localhost -r odoo -w odoo --stop-after-init
|
|
cd ..
|
|
}
|
|
|
|
function start-src() {
|
|
cd odoo
|
|
locale
|
|
activate-venv && ./odoo-bin --config=../config/odoo-src.conf --db_host=localhost -r odoo -w odoo --dev=all
|
|
cd ..
|
|
}
|
|
|
|
function update-module() {
|
|
cd odoo
|
|
locale
|
|
activate-venv && ./odoo-bin -u $1 -d odoo --db_host=localhost -r odoo -w odoo --stop-after-init
|
|
cd ..
|
|
}
|
|
|
|
function scaffold-src() {
|
|
if test -z "$1"
|
|
then
|
|
echo "\$1 is empty"
|
|
else
|
|
cd odoo
|
|
python3 odoo-bin scaffold $1 ../addons
|
|
cd ..
|
|
fi
|
|
}
|
|
|
|
function drop-db() {
|
|
if test -z "$1"
|
|
then
|
|
echo "\$1 is empty"
|
|
else
|
|
psql postgres://odoo:odoo@localhost/postgres -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '$1';"
|
|
psql postgres://odoo:odoo@localhost/postgres -c "DROP DATABASE $1;"
|
|
fi
|
|
}
|
|
|
|
function send-support-mail() {
|
|
curl smtp://localhost --mail-from admin@yourcompany.example.com --mail-rcpt support@localhost --upload-file ./data/email.txt
|
|
}
|
|
|
|
case "$1" in
|
|
disable-auto-install)
|
|
disable-auto-install
|
|
;;
|
|
checkout)
|
|
git checkout $2 && git submodule update --init
|
|
;;
|
|
start)
|
|
docker-compose up -d
|
|
;;
|
|
stop)
|
|
docker-compose stop
|
|
;;
|
|
kill)
|
|
docker-compose down -v
|
|
;;
|
|
log)
|
|
docker logs odoo -f
|
|
;;
|
|
start-db)
|
|
docker-compose up -d db pgadmin
|
|
;;
|
|
venv-init)
|
|
venv-init
|
|
;;
|
|
install-src)
|
|
install-src
|
|
;;
|
|
init-db)
|
|
init-db
|
|
;;
|
|
start-src)
|
|
start-src
|
|
;;
|
|
update-module)
|
|
update-module $2
|
|
;;
|
|
scaffold-src)
|
|
scaffold-src $2
|
|
;;
|
|
drop-db)
|
|
drop-db $2
|
|
;;
|
|
compile-managed-modules)
|
|
./scripts/compile-managed-modules
|
|
;;
|
|
copy-managed-modules)
|
|
./scripts/copy-managed-modules
|
|
;;
|
|
remove-managed-modules)
|
|
./scripts/remove-managed-modules
|
|
;;
|
|
send-support-mail)
|
|
send-support-mail
|
|
;;
|
|
*)
|
|
help task
|
|
exit 1
|
|
esac
|