01042bc23c
Nuevas funciones bash: gestión Gitea (create_repo, list_repos, add_collaborator, push_directory), install_android_sdk, install_mantine, frontend_doctor. Pipelines: capacitor_build_apk y gitea_init_app. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
98 lines
2.8 KiB
Bash
98 lines
2.8 KiB
Bash
# install_mantine
|
|
# ---------------
|
|
# Instala dependencias de Mantine UI en un proyecto frontend.
|
|
# Detecta package manager por lockfile (pnpm > yarn > npm).
|
|
# Genera postcss.config.cjs si no existe.
|
|
# Idempotente: no reinstala si ya estan presentes.
|
|
#
|
|
# USO (sourced):
|
|
# source install_mantine.sh
|
|
# install_mantine /path/to/frontend
|
|
#
|
|
# USO (directo):
|
|
# bash install_mantine.sh /path/to/frontend
|
|
|
|
install_mantine() {
|
|
local project_dir="$1"
|
|
|
|
if [ -z "$project_dir" ]; then
|
|
echo "install_mantine: se requiere project_dir" >&2
|
|
return 1
|
|
fi
|
|
|
|
if [ ! -f "$project_dir/package.json" ]; then
|
|
echo "install_mantine: no existe package.json en $project_dir" >&2
|
|
return 1
|
|
fi
|
|
|
|
# Detectar package manager
|
|
local pm="npm"
|
|
local add_cmd="install"
|
|
local add_dev_flag="--save-dev"
|
|
if [ -f "$project_dir/pnpm-lock.yaml" ] || [ -f "$project_dir/pnpm-workspace.yaml" ]; then
|
|
pm="pnpm"
|
|
add_cmd="add"
|
|
add_dev_flag="-D"
|
|
elif [ -f "$project_dir/yarn.lock" ]; then
|
|
pm="yarn"
|
|
add_cmd="add"
|
|
add_dev_flag="--dev"
|
|
elif [ -f "$project_dir/package-lock.json" ]; then
|
|
pm="npm"
|
|
add_cmd="install"
|
|
add_dev_flag="--save-dev"
|
|
fi
|
|
|
|
echo "Detectado package manager: $pm"
|
|
|
|
# Dependencias runtime
|
|
local runtime_deps="@mantine/core @mantine/hooks @mantine/charts @mantine/notifications @mantine/form"
|
|
echo "Instalando dependencias Mantine..."
|
|
(cd "$project_dir" && $pm $add_cmd $runtime_deps 2>&1)
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "install_mantine: fallo instalando dependencias runtime" >&2
|
|
return 1
|
|
fi
|
|
|
|
# Dependencias PostCSS (dev)
|
|
local dev_deps="postcss postcss-preset-mantine postcss-simple-vars"
|
|
echo "Instalando dependencias PostCSS..."
|
|
(cd "$project_dir" && $pm $add_cmd $add_dev_flag $dev_deps 2>&1)
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "install_mantine: fallo instalando dependencias PostCSS" >&2
|
|
return 1
|
|
fi
|
|
|
|
# Generar postcss.config.cjs si no existe
|
|
if [ ! -f "$project_dir/postcss.config.cjs" ]; then
|
|
echo "Generando postcss.config.cjs..."
|
|
cat > "$project_dir/postcss.config.cjs" << 'POSTCSS'
|
|
module.exports = {
|
|
plugins: {
|
|
'postcss-preset-mantine': {},
|
|
'postcss-simple-vars': {
|
|
variables: {
|
|
'mantine-breakpoint-xs': '36em',
|
|
'mantine-breakpoint-sm': '48em',
|
|
'mantine-breakpoint-md': '62em',
|
|
'mantine-breakpoint-lg': '75em',
|
|
'mantine-breakpoint-xl': '88em',
|
|
},
|
|
},
|
|
},
|
|
};
|
|
POSTCSS
|
|
echo "postcss.config.cjs creado"
|
|
else
|
|
echo "postcss.config.cjs ya existe, no se sobreescribe"
|
|
fi
|
|
|
|
echo "Mantine instalado correctamente en $project_dir"
|
|
}
|
|
|
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
|
install_mantine "$@"
|
|
fi
|