mirror of
https://github.com/marcogll/omarchy_setup.git
synced 2026-01-13 13:25:16 +00:00
refactor: externalize dotfiles to mg_dotfiles and cleanup local configs
This commit is contained in:
@@ -13,6 +13,9 @@ CYAN='\033[0;36m'
|
||||
NC='\033[0m' # No Color
|
||||
BOLD='\033[1m'
|
||||
|
||||
# Directorio de dotfiles personales
|
||||
DOTFILES_DIR="${HOME}/Work/code/mg_dotfiles"
|
||||
|
||||
# Funciones de logging
|
||||
_maybe_clear_spinner() {
|
||||
if declare -F spinner_clear_line >/dev/null; then
|
||||
|
||||
@@ -12,19 +12,19 @@ source "${SCRIPT_DIR}/icon_manager.sh"
|
||||
run_module_main() {
|
||||
log_step "Instalación de Configuración de Hyprland"
|
||||
|
||||
# --- 1. Copiar archivos de configuración ---
|
||||
# La configuración de Hyprland debe estar en una carpeta 'hypr_config' en la raíz del repo
|
||||
local source_dir="${SCRIPT_DIR}/../hypr_config"
|
||||
# --- 1. Determinar origen de configuración ---
|
||||
# Usar mg_dotfiles
|
||||
local source_dir="${DOTFILES_DIR}/omarchy/hypr"
|
||||
local dest_dir="$HOME/.config/hypr"
|
||||
|
||||
if [[ ! -d "$source_dir" ]]; then
|
||||
log_error "No se encontró el directorio de configuración 'hypr_config' en la raíz del repositorio."
|
||||
log_info "Asegúrate de que la carpeta con tu configuración se llame 'hypr_config'."
|
||||
log_error "No se encontró la configuración en '${source_dir}'."
|
||||
log_info "Asegúrate de tener clonado el repositorio 'mg_dotfiles' en la ruta esperada."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Crear copia de seguridad si ya existe una configuración
|
||||
if [[ -d "$dest_dir" ]]; then
|
||||
if [[ -d "$dest_dir" ]] && [[ ! -L "$dest_dir" ]]; then
|
||||
local backup_dir="${dest_dir}.bak_$(date +%F_%T)"
|
||||
log_warning "Configuración de Hyprland existente encontrada."
|
||||
log_info "Creando copia de seguridad en: ${backup_dir}"
|
||||
@@ -36,9 +36,15 @@ run_module_main() {
|
||||
fi
|
||||
fi
|
||||
|
||||
log_info "Copiando la configuración de Hyprland a ${dest_dir}..."
|
||||
# Usamos rsync para una copia eficiente
|
||||
rsync -a --info=progress2 "$source_dir/" "$dest_dir/"
|
||||
log_info "Configurando Hyprland desde ${source_dir}..."
|
||||
if [[ "$source_dir" == "${DOTFILES_DIR}/omarchy/hypr" ]]; then
|
||||
log_info "Creando enlace simbólico a tus dotfiles personales..."
|
||||
ln -sfn "$source_dir" "$dest_dir"
|
||||
else
|
||||
log_info "Copiando configuración local (rsync)..."
|
||||
mkdir -p "$dest_dir"
|
||||
rsync -a --info=progress2 "$source_dir/" "$dest_dir/"
|
||||
fi
|
||||
|
||||
# --- 2. Establecer el tema de iconos por defecto ---
|
||||
log_info "Estableciendo el tema de iconos por defecto (Tela Nord)..."
|
||||
|
||||
@@ -144,44 +144,37 @@ install_zsh() {
|
||||
ensure_omz_plugin "zsh-autosuggestions" "https://github.com/zsh-users/zsh-autosuggestions.git"
|
||||
ensure_omz_plugin "zsh-syntax-highlighting" "https://github.com/zsh-users/zsh-syntax-highlighting.git"
|
||||
|
||||
# --- 3. Descargar y configurar el .zshrc personalizado ---
|
||||
log_info "Actualizando configuración .zshrc..."
|
||||
local repo_zshrc_path="${SCRIPT_DIR_ROOT}/.zshrc"
|
||||
local tmp_download="${target_home}/.zshrc.omarchy-tmp"
|
||||
local source_file=""
|
||||
|
||||
if zsh_download_with_timeout "${REPO_BASE}/.zshrc" "$tmp_download" && [[ -s "$tmp_download" ]]; then
|
||||
source_file="$tmp_download"
|
||||
log_success "Configuración .zshrc descargada desde el repositorio remoto."
|
||||
else
|
||||
rm -f "$tmp_download"
|
||||
if [[ -f "$repo_zshrc_path" ]]; then
|
||||
log_warning "No se pudo descargar .zshrc. Usando la copia local del repositorio."
|
||||
source_file="$repo_zshrc_path"
|
||||
else
|
||||
log_error "No se pudo obtener la configuración .zshrc (sin red y sin copia local)."
|
||||
return 1
|
||||
fi
|
||||
# --- 3. Enlazar configuración .zshrc ---
|
||||
log_info "Configurando .zshrc..."
|
||||
local repo_zshrc_path="${DOTFILES_DIR}/zsh/.zshrc"
|
||||
local repo_help_path="${DOTFILES_DIR}/zsh/.zshrc.help"
|
||||
local repo_funcs_path="${DOTFILES_DIR}/zsh/.zsh_functions"
|
||||
|
||||
if [[ ! -f "$repo_zshrc_path" ]]; then
|
||||
log_error "No se encontró .zshrc en '${repo_zshrc_path}'."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Crear copia de seguridad antes de sobrescribir
|
||||
backup_file "${target_home}/.zshrc" || { rm -f "$tmp_download"; return 1; }
|
||||
# Crear copia de seguridad antes de proceder
|
||||
backup_file "${target_home}/.zshrc" || return 1
|
||||
|
||||
if [[ "$source_file" == "$tmp_download" ]]; then
|
||||
if mv "$tmp_download" "${target_home}/.zshrc"; then
|
||||
log_success "Archivo .zshrc actualizado."
|
||||
else
|
||||
rm -f "$tmp_download"
|
||||
log_error "No se pudo mover el archivo .zshrc descargado."
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
if cp "$source_file" "${target_home}/.zshrc"; then
|
||||
log_success "Archivo .zshrc actualizado desde la copia local."
|
||||
else
|
||||
log_error "No se pudo copiar la configuración .zshrc local."
|
||||
return 1
|
||||
fi
|
||||
log_success "Enlazando .zshrc desde mg_dotfiles..."
|
||||
ln -sf "$repo_zshrc_path" "${target_home}/.zshrc"
|
||||
|
||||
# Enlazar también el archivo de ayuda si existe
|
||||
if [[ -f "$repo_help_path" ]]; then
|
||||
ln -sf "$repo_help_path" "${target_home}/.zshrc.help"
|
||||
fi
|
||||
|
||||
# Enlazar funciones si el directorio existe
|
||||
if [[ -d "$repo_funcs_path" ]]; then
|
||||
mkdir -p "${target_home}/.zsh_functions"
|
||||
for func_file in "$repo_funcs_path"/*.zsh; do
|
||||
if [[ -f "$func_file" ]]; then
|
||||
ln -sf "$func_file" "${target_home}/.zsh_functions/$(basename "$func_file")"
|
||||
fi
|
||||
done
|
||||
log_success "Funciones de Zsh enlazadas."
|
||||
fi
|
||||
|
||||
# --- 4. Descargar el tema de Oh My Posh ---
|
||||
|
||||
Reference in New Issue
Block a user