feat(browser): auto-commit con 178 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
# open_doc_onlyoffice — abre un documento ofimático con OnlyOffice Desktop Editors.
|
||||
#
|
||||
# Uso:
|
||||
# open_doc_onlyoffice <ruta_archivo> [--restart]
|
||||
#
|
||||
# Lanza el editor desacoplado del shell (setsid + background) para que sobreviva
|
||||
# al proceso que lo invoca. Localiza el binario por PATH, sin hardcodear rutas.
|
||||
#
|
||||
# --restart cierra toda la instancia de OnlyOffice antes de relanzar, para forzar
|
||||
# la recarga desde disco de un archivo que se regeneró (OnlyOffice mantiene en
|
||||
# memoria la versión vieja de los documentos ya abiertos).
|
||||
set -euo pipefail
|
||||
|
||||
usage() {
|
||||
echo "uso: open_doc_onlyoffice <ruta_archivo> [--restart]" >&2
|
||||
exit 2
|
||||
}
|
||||
|
||||
[ $# -ge 1 ] || usage
|
||||
|
||||
doc=""
|
||||
restart=0
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--restart) restart=1 ;;
|
||||
-h|--help) usage ;;
|
||||
*) doc="$arg" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
[ -n "$doc" ] || usage
|
||||
|
||||
if [ ! -f "$doc" ]; then
|
||||
echo "error: archivo no encontrado: $doc" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
bin="$(command -v onlyoffice-desktopeditors || true)"
|
||||
if [ -z "$bin" ]; then
|
||||
echo "error: onlyoffice-desktopeditors no esta en PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ruta absoluta para que OnlyOffice no dependa del directorio de trabajo.
|
||||
doc_abs="$(readlink -f "$doc")"
|
||||
|
||||
if [ "$restart" -eq 1 ]; then
|
||||
# Cierra la app entera para descartar la copia en memoria de los documentos.
|
||||
# pkill -x sobre el comm exacto del proceso real (no -f, para no auto-matar
|
||||
# el propio script si su ruta contiene el patrón).
|
||||
pkill -x DesktopEditors 2>/dev/null || true
|
||||
# Espera (máx ~5s) a que el proceso principal termine antes de relanzar.
|
||||
for _ in $(seq 1 25); do
|
||||
pgrep -x DesktopEditors >/dev/null 2>&1 || break
|
||||
sleep 0.2
|
||||
done
|
||||
fi
|
||||
|
||||
setsid "$bin" "$doc_abs" >/dev/null 2>&1 &
|
||||
echo "abierto en OnlyOffice: $doc_abs"
|
||||
Reference in New Issue
Block a user