Add settings menu, update OCB, and update all options
This commit is contained in:
@@ -29,9 +29,35 @@ readonly color_end="\e[0m"
|
||||
readonly bold="\e[1m"
|
||||
readonly bold_end="\e[0m"
|
||||
|
||||
update_all() {
|
||||
local repos=( $(get_local_repos) )
|
||||
|
||||
update_oca_repos "${repos[@]}"
|
||||
update_ocb
|
||||
}
|
||||
|
||||
update_ocb() {
|
||||
local exit_code
|
||||
|
||||
printf "\n%s\n" "Start updating OCB..."
|
||||
|
||||
echo "Entering: ${ocb_install_path}" >&2
|
||||
cd ${ocb_install_path} && git pull
|
||||
exit_code=$?
|
||||
if [[ "${exit_code}" -ne 0 ]]; then
|
||||
printf "${color_danger}%s${color_end},\n" "Error! Something was wrong updating OCB..."
|
||||
fi
|
||||
|
||||
if [[ "${exit_code}" -eq 0 ]]; then
|
||||
printf "\n${bold}%b${bold_end}\n" "Update complete!"
|
||||
else
|
||||
printf "${color_danger}%s${color_end}\n" "Error! Something was wrong during the update process."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
show_installed_repos_path() {
|
||||
local content=( $( find ${oca_addons_install_path} -type d -mindepth 1 -maxdepth 1 ) )
|
||||
local content=( $( find ${oca_addons_install_path} -mindepth 1 -maxdepth 1 -type d ) )
|
||||
if [[ -z ${content[@]} ]]; then
|
||||
printf "\n\n\t\t${bold}%b${bold_end}\n" "No repositories found!"
|
||||
else
|
||||
@@ -45,14 +71,14 @@ get_local_repos() {
|
||||
echo "${local_repos[@]}"
|
||||
}
|
||||
|
||||
update() {
|
||||
select_oca_repos_to_update() {
|
||||
local repos=( $(get_local_repos) )
|
||||
local selected_repos
|
||||
|
||||
select_repos "update_cmd" "${repos[@]}"
|
||||
select_repos "update_oca_repos" "${repos[@]}"
|
||||
}
|
||||
|
||||
update_cmd() {
|
||||
update_oca_repos() {
|
||||
local exit_code
|
||||
|
||||
printf "\n%s\n" "Start updating..."
|
||||
@@ -73,7 +99,7 @@ update_cmd() {
|
||||
fi
|
||||
}
|
||||
|
||||
clone() {
|
||||
select_repos_to_clone() {
|
||||
local repos
|
||||
|
||||
while true; do
|
||||
@@ -90,11 +116,11 @@ clone() {
|
||||
|
||||
repos=( $(get_repos_names) )
|
||||
|
||||
select_repos "clone_cmd" "${repos[@]}"
|
||||
select_repos "clone_repos" "${repos[@]}"
|
||||
show_installed_repos_path
|
||||
}
|
||||
|
||||
clone_cmd() {
|
||||
clone_repos() {
|
||||
local exit_code
|
||||
|
||||
printf "\n%s\n" "Start cloning..."
|
||||
@@ -313,6 +339,33 @@ set_oca_addons_install_path() {
|
||||
save_in_config_file "oca_addons_install_path" "${path_selected}"
|
||||
}
|
||||
|
||||
set_ocb_install_path() {
|
||||
local path_selected
|
||||
|
||||
while true; do
|
||||
printf "\n\n%s\n" "Please, insert the OCB install path."
|
||||
echo "[Enter for default: /opt/odoo/${odoo_version}/OCB/ ]:"
|
||||
echo -n "==> "
|
||||
read -e path_selected
|
||||
|
||||
if [[ -z "${path_selected:-}" ]]; then
|
||||
path_selected="/opt/odoo/${odoo_version}/OCB/"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${path_selected}" ]]; then
|
||||
printf "\n\n${color_danger}%s${color_end}" "Path doesn't exist! Please, insert an existing one."
|
||||
continue
|
||||
fi
|
||||
|
||||
break
|
||||
done
|
||||
|
||||
# Remove trailing slash if present
|
||||
path_selected="${path_selected%/}"
|
||||
|
||||
save_in_config_file "ocb_install_path" "${path_selected}"
|
||||
}
|
||||
|
||||
set_odoo_version() {
|
||||
local odoo_version_selected
|
||||
|
||||
@@ -350,20 +403,65 @@ get_config_file() {
|
||||
source "${orm_file}" 2>/dev/null
|
||||
}
|
||||
|
||||
settings_menu() {
|
||||
while true; do
|
||||
echo
|
||||
echo "********************************************************"
|
||||
echo " SETTINGS "
|
||||
echo "********************************************************"
|
||||
printf "${bold}%s ${color_success}%b${color_end}\n" " > Odoo target version:" "${odoo_version}"
|
||||
printf "${bold}%s ${color_success}%b${color_end}\n" " > OCB install path:" "${ocb_install_path}"
|
||||
printf "${bold}%s ${color_success}%b${color_end}\n" " > OCA addons install path:" "${oca_addons_install_path}"
|
||||
echo "********************************************************"
|
||||
echo
|
||||
echo "1) Change Odoo target version"
|
||||
echo "2) Change OCB install path"
|
||||
echo "3) Change OCA addons install path"
|
||||
echo "---"
|
||||
echo "4) Back"
|
||||
echo
|
||||
echo -n "==> "
|
||||
read -sn 1
|
||||
|
||||
case "${REPLY}" in
|
||||
1)
|
||||
set_odoo_version
|
||||
continue
|
||||
;;
|
||||
2)
|
||||
set_ocb_install_path
|
||||
continue
|
||||
;;
|
||||
3)
|
||||
set_oca_addons_install_path
|
||||
continue
|
||||
;;
|
||||
4)
|
||||
main_menu
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo "Choice not valid!"
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
main_menu() {
|
||||
while true; do
|
||||
echo
|
||||
echo "********************************************************"
|
||||
printf "${bold}%s ${color_success}%b${color_end}\n" " > Odoo target version:" "${odoo_version}"
|
||||
printf "${bold}%s ${color_success}%b${color_end}\n" " > OCA addons install path:" "${oca_addons_install_path}"
|
||||
printf "\t\t\t${bold}%s${bold_end}\n" "MAIN MENU"
|
||||
echo "********************************************************"
|
||||
echo
|
||||
echo "1) Clone OCA repositories"
|
||||
echo "2) Update OCA repositories already cloned"
|
||||
echo "3) Show installed repositories path for Odoo config file"
|
||||
echo "2) Show installed repositories path for Odoo config file"
|
||||
echo "3) Update OCA repositories already cloned"
|
||||
echo "4) Update OCB"
|
||||
echo "5) Update All"
|
||||
echo "---"
|
||||
echo "4) Change Odoo target version"
|
||||
echo "5) Change OCA addons install path"
|
||||
echo "6) Settings"
|
||||
echo "---"
|
||||
echo "q) Exit"
|
||||
echo
|
||||
@@ -372,26 +470,32 @@ main_menu() {
|
||||
|
||||
case "${REPLY}" in
|
||||
1)
|
||||
clone
|
||||
select_repos_to_clone
|
||||
read -p $'\nPress any key to continue...'
|
||||
continue
|
||||
;;
|
||||
2)
|
||||
update
|
||||
read -p $'\nPress any key to continue...'
|
||||
continue
|
||||
;;
|
||||
3)
|
||||
show_installed_repos_path
|
||||
read -p $'\nPress any key to continue...'
|
||||
continue
|
||||
;;
|
||||
3)
|
||||
select_oca_repos_to_update
|
||||
read -p $'\nPress any key to continue...'
|
||||
continue
|
||||
;;
|
||||
4)
|
||||
set_odoo_version
|
||||
update_ocb
|
||||
read -p $'\nPress any key to continue...'
|
||||
continue
|
||||
;;
|
||||
5)
|
||||
set_oca_addons_install_path
|
||||
update_all
|
||||
read -p $'\nPress any key to continue...'
|
||||
continue
|
||||
;;
|
||||
6)
|
||||
settings_menu
|
||||
continue
|
||||
;;
|
||||
q|Q)
|
||||
@@ -439,6 +543,10 @@ main() {
|
||||
set_odoo_version
|
||||
fi
|
||||
|
||||
if [[ -z "${ocb_install_path+x:-}" ]]; then
|
||||
set_ocb_install_path
|
||||
fi
|
||||
|
||||
if [[ -z "${oca_addons_install_path+x:-}" ]]; then
|
||||
set_oca_addons_install_path
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user