Compare commits
	
		
			9 commits
		
	
	
		
			14ab7b0a41
			...
			86ae118f7e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 86ae118f7e | |||
| 07cd87d386 | |||
| 8a2bb7b6c8 | |||
| 322880209e | |||
| 1e77cba91c | |||
| b5c12016fd | |||
| d24e8eeeb2 | |||
| 9eac07f566 | |||
| 706867dc05 | 
					 4 changed files with 72 additions and 46 deletions
				
			
		
							
								
								
									
										1
									
								
								bin/config/projects.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								bin/config/projects.dat
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | proyectos | ||||||
|  | @ -21,13 +21,7 @@ | ||||||
| ODOO_DEVS=${ODOODEVS:=odoo} | ODOO_DEVS=${ODOODEVS:=odoo} | ||||||
| ODOO_CFGS=${ODOO_CFGS:=configs} | ODOO_CFGS=${ODOO_CFGS:=configs} | ||||||
| ODOODEVS_PATH="${HOME}/${DEVSPATH:=devs}/${ODOO_DEVS}" | ODOODEVS_PATH="${HOME}/${DEVSPATH:=devs}/${ODOO_DEVS}" | ||||||
| ODOO_REPO_WEB="$(cat ${HOME}/${DEVSPATH:=devs}/bin/config/odoo.repo.2)" |  | ||||||
| ODOO_REPO_SSH="$(cat ${HOME}/${DEVSPATH:=devs}/bin/config/odoo.repo.1)" |  | ||||||
| ODOO_REPO_ALT="" |  | ||||||
| ODOO_REPO_PKG=packs.repos |  | ||||||
| ODOO_PACK_DEV=packs | ODOO_PACK_DEV=packs | ||||||
| ODOO_VERSION="$(cat < ${ODOODEVS_PATH}/${ODOO_CFGS}/odoo.version)" |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| ODOO_CFG_VERS=("18") | ODOO_CFG_VERS=("18") | ||||||
| 
 | 
 | ||||||
|  | @ -37,36 +31,6 @@ function devslib_test() { | ||||||
|   exit 1 |   exit 1 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function odoo_developers() { |  | ||||||
|   clear |  | ||||||
|   if [ -d "${ODOODEVS_PATH}" ]; then |  | ||||||
|     return 1 |  | ||||||
|   else |  | ||||||
|     if [ ! -d "${ODOODEVS_PATH}/.git" ]; then |  | ||||||
|       display_text_header "${head_000} ${odmsg_000}" "${odmsg_113} ${ODOO_REPO_SSH}" |  | ||||||
|       git clone "${ODOO_REPO_SSH}" "${ODOODEVS_PATH}" |  | ||||||
|       if [ $? -ne 0 ]; then |  | ||||||
|         display_text_header "${head_000} ${odmsg_000}" "${odmsg_114} ${ODOO_REPO_ALT}" |  | ||||||
|         git clone "${ODOO_REPO_ALT}" "${ODOODEVS_PATH}" |  | ||||||
|         if [ $? -ne 0 ]; then |  | ||||||
|           return 2 |  | ||||||
|         fi |  | ||||||
|       fi |  | ||||||
|     else |  | ||||||
|       cd "${ODOODEVS_PATH}" |  | ||||||
|       git pull |  | ||||||
|       if [ $? -ne 0 ]; then |  | ||||||
|         return 3 |  | ||||||
|       fi |  | ||||||
|     fi |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   if [ ! -d "${ODOODEVS_PATH}/${ODOO_PACK_DEV}" ]; then |  | ||||||
|     mkdir "${ODOODEVS_PATH}/${ODOO_PACK_DEV}" |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   return 0 |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Check for odoo version supported | # Check for odoo version supported | ||||||
|  | @ -89,6 +53,7 @@ function odoo_verscheck() { | ||||||
| function odoo_create_project() { | function odoo_create_project() { | ||||||
|   local project_name=$1 |   local project_name=$1 | ||||||
|   local projects_folder=$2 |   local projects_folder=$2 | ||||||
|  |   local project_description=$3 | ||||||
|   local projects_path="${HOME}/${DEVSPATH}/${projects_folder}" |   local projects_path="${HOME}/${DEVSPATH}/${projects_folder}" | ||||||
|   local project_path="${projects_path}/${project_name}" |   local project_path="${projects_path}/${project_name}" | ||||||
|    |    | ||||||
|  | @ -102,6 +67,30 @@ function odoo_create_project() { | ||||||
|    |    | ||||||
|   # Verificar si el proyecto ya existe |   # Verificar si el proyecto ya existe | ||||||
|   if [ -d "${project_path}" ]; then |   if [ -d "${project_path}" ]; then | ||||||
|  |     # Si el proyecto existe y tiene un README.md, actualizar la descripción | ||||||
|  |     if [ -f "${project_path}/README.md" ]; then | ||||||
|  |       # Respaldar el README original | ||||||
|  |       cp "${project_path}/README.md" "${project_path}/README.md.bak" | ||||||
|  |        | ||||||
|  |       # Crear un nuevo README con la descripción actualizada | ||||||
|  |       # Método más simple y robusto que awk, que podría fallar con sintaxis complejas | ||||||
|  |       { | ||||||
|  |         grep -i -B 1000 "^## Descripción" "${project_path}/README.md.bak" 2>/dev/null || echo -e "# Proyecto Odoo: ${project_name}\n\n## Descripción" | ||||||
|  |         echo "${project_description}" | ||||||
|  |         echo "" | ||||||
|  |         echo "Este proyecto fue actualizado con las herramientas MRDevs." | ||||||
|  |         echo "" | ||||||
|  |         grep -i -A 1000 "^## " "${project_path}/README.md.bak" | grep -v "^## Descripción" | awk 'NR>1' | ||||||
|  |       } > "${project_path}/README.md.new" | ||||||
|  |        | ||||||
|  |       # Verificar que el archivo nuevo no está vacío antes de reemplazar | ||||||
|  |       if [ -s "${project_path}/README.md.new" ]; then | ||||||
|  |         mv "${project_path}/README.md.new" "${project_path}/README.md" | ||||||
|  |       else | ||||||
|  |         # Si algo falló, restaurar el backup | ||||||
|  |         mv "${project_path}/README.md.bak" "${project_path}/README.md" | ||||||
|  |       fi | ||||||
|  |     fi | ||||||
|     return 1  # El proyecto ya existe |     return 1  # El proyecto ya existe | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
|  | @ -197,7 +186,9 @@ EOF | ||||||
| # Proyecto Odoo: ${project_name} | # Proyecto Odoo: ${project_name} | ||||||
| 
 | 
 | ||||||
| ## Descripción | ## Descripción | ||||||
| Este es un proyecto Odoo creado con las herramientas MRDevs. | ${project_description} | ||||||
|  | 
 | ||||||
|  | Este proyecto fue creado con las herramientas MRDevs. | ||||||
| 
 | 
 | ||||||
| ## Estructura | ## Estructura | ||||||
| - \`addons/\`: Módulos Odoo | - \`addons/\`: Módulos Odoo | ||||||
|  |  | ||||||
|  | @ -24,10 +24,11 @@ odmsg_106="Ingrese el nombre del proyecto Odoo a crear" | ||||||
| odmsg_107="El nombre del proyecto no puede estar vacío." | odmsg_107="El nombre del proyecto no puede estar vacío." | ||||||
| odmsg_108="Proyecto creado exitosamente en" | odmsg_108="Proyecto creado exitosamente en" | ||||||
| odmsg_109="Error al crear el proyecto." | odmsg_109="Error al crear el proyecto." | ||||||
| odmsg_110="El directorio del proyecto ya existe." | odmsg_110="El directorio del proyecto ya existe. Se ha actualizado la descripción en README.md." | ||||||
| odmsg_111="Creando estructura de proyecto Odoo..." | odmsg_111="Creando estructura de proyecto Odoo..." | ||||||
| odmsg_112="No se pudo encontrar el directorio de proyectos." | odmsg_112="No se pudo encontrar el directorio de proyectos." | ||||||
| odmsg_115="Configuración completa. Se han creado todas las carpetas y archivos necesarios." |  | ||||||
| odmsg_116="Puedes comenzar tu desarrollo ejecutando el script start.sh en la carpeta scripts." |  | ||||||
| odmsg_113="Clonando repositorio desde" | odmsg_113="Clonando repositorio desde" | ||||||
| odmsg_114="Intentando clonar desde repositorio alternativo" | odmsg_114="Intentando clonar desde repositorio alternativo" | ||||||
|  | odmsg_115="Configuración completa. Se han creado todas las carpetas y archivos necesarios." | ||||||
|  | odmsg_116="Puedes comenzar tu desarrollo ejecutando el script start.sh en la carpeta scripts." | ||||||
|  | odmsg_117="Descripción del Proyecto Odoo:" | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| #!/bin/bash | #\!/bin/bash | ||||||
| # | # | ||||||
| # odoo_set.sh | # odoo_set.sh | ||||||
| # Modified: 2025/03/12 15:00:00 | # Modified: 2025/03/12 15:00:00 | ||||||
|  | @ -52,7 +52,7 @@ load_messages $BIN_HOME $BIN_MESG $BIN_LANG "odoo" | ||||||
| title="$head_000 $odmsg_000" | title="$head_000 $odmsg_000" | ||||||
| apps_title="${odmsg_102}" | apps_title="${odmsg_102}" | ||||||
| 
 | 
 | ||||||
| # Check if dialog is not installed, exited! | # Check if dialog is not installed, exited\! | ||||||
| command_installed "dialog" | command_installed "dialog" | ||||||
| if [ $? -ne 0 ] | if [ $? -ne 0 ] | ||||||
| then | then | ||||||
|  | @ -61,7 +61,7 @@ then | ||||||
|   exit 200 |   exit 200 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| # Check if os is valid! | # Check if os is valid\! | ||||||
| get_osname | get_osname | ||||||
| if [ "${os_name}" == "${head_unknow}" ] | if [ "${os_name}" == "${head_unknow}" ] | ||||||
| then | then | ||||||
|  | @ -94,15 +94,37 @@ fi | ||||||
| 
 | 
 | ||||||
| PROJECT_NAME="$value" | PROJECT_NAME="$value" | ||||||
| 
 | 
 | ||||||
|  | # Solicitar descripción del proyecto Odoo | ||||||
|  | clear | ||||||
|  | dialog_input_box "${odmsg_117}" "" "" | ||||||
|  | 
 | ||||||
|  | if [ $? -ne 0 ]; then | ||||||
|  |   dialog_error_box "${head_error}" "${head_op_error}" | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | PROJECT_DESCRIPTION="$value" | ||||||
|  | # Si no se proporciona descripción, usar un texto predeterminado | ||||||
|  | if [ -z "$PROJECT_DESCRIPTION" ]; then | ||||||
|  |   PROJECT_DESCRIPTION="Este es un proyecto Odoo para gestionar procesos de negocio." | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Inicializar la variable result | ||||||
|  | result=0 | ||||||
|  | TEMP_FILE="/tmp/odoo_set_result.$$" | ||||||
|  | 
 | ||||||
| # Mostrar progreso de creación | # Mostrar progreso de creación | ||||||
| ( | ( | ||||||
|   echo 0; sleep 1 |   echo 0; sleep 1 | ||||||
|   echo 20; echo "# ${odmsg_111}" |   echo 20; echo "# ${odmsg_111}" | ||||||
|    |    | ||||||
|   # Crear el proyecto Odoo |   # Crear el proyecto Odoo | ||||||
|   odoo_create_project "$PROJECT_NAME" "$PROJECTS_FOLDER" |   odoo_create_project "$PROJECT_NAME" "$PROJECTS_FOLDER" "$PROJECT_DESCRIPTION" | ||||||
|   result=$? |   result=$? | ||||||
|    |    | ||||||
|  |   # Guardar el resultado en un archivo temporal para recuperarlo después | ||||||
|  |   echo $result > "$TEMP_FILE" | ||||||
|  |    | ||||||
|   echo 80;  |   echo 80;  | ||||||
|   # Mensaje basado en el resultado |   # Mensaje basado en el resultado | ||||||
|   if [ $result -eq 0 ]; then |   if [ $result -eq 0 ]; then | ||||||
|  | @ -119,9 +141,20 @@ PROJECT_NAME="$value" | ||||||
|   sleep 1 |   sleep 1 | ||||||
| ) | dialog --backtitle "${title}" --title "${apps_title}" --gauge "" 10 70 0 | ) | dialog --backtitle "${title}" --title "${apps_title}" --gauge "" 10 70 0 | ||||||
| 
 | 
 | ||||||
|  | # Recuperar el resultado | ||||||
|  | result=0 # Valor predeterminado en caso de error | ||||||
|  | if [ -f "$TEMP_FILE" ]; then | ||||||
|  |   result=$(cat "$TEMP_FILE") | ||||||
|  |   rm -f "$TEMP_FILE" | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| case $result in | case $result in | ||||||
|   0) |   0) | ||||||
|     dialog_error_box "${head_info}" "${odmsg_108} $HOME/$DEVSPATH/$PROJECTS_FOLDER/$PROJECT_NAME\n\n${odmsg_116}" |     # Mostrar mensaje de éxito con caja de diálogo ampliada para mejor visibilidad | ||||||
|  |     # Bypassing dialog_error_box para tener más control sobre el tamaño | ||||||
|  |     title_text="${head_info} - ${apps_title}" | ||||||
|  |     message_text="${odmsg_108} $HOME/$DEVSPATH/$PROJECTS_FOLDER/$PROJECT_NAME\n\n${odmsg_116}" | ||||||
|  |     dialog --backtitle "${title}" --title "${title_text}" --msgbox "\n${message_text}" 12 80 | ||||||
|     ;; |     ;; | ||||||
|   1) |   1) | ||||||
|     dialog_error_box "${head_warning}" "${odmsg_110}" |     dialog_error_box "${head_warning}" "${odmsg_110}" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue