Translate user-facing docs and node help to English
README, NODES.md, install scripts, palette help text, and example flows — node .js logic unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+27
-27
@@ -1,12 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
# bootstrap-install.sh — klona från Gitea och integrera i befintlig nextcloud-node-red
|
||||
# bootstrap-install.sh — clone from Gitea and integrate into existing nextcloud-node-red
|
||||
#
|
||||
# Skapar INTE ny Node-RED-container. Patchar /home/ncadmin/nextcloud-node-red och bygger om.
|
||||
# Does NOT create a new Node-RED container. Patches nextcloud-node-red and rebuilds.
|
||||
#
|
||||
# One-liner (kör som ncadmin, INTE root):
|
||||
# One-liner (run as install user, NOT root):
|
||||
# curl -fsSL https://kode.hannesahlin.se/n3wk/nextcloud-collabora-nodered/raw/branch/main/bootstrap-install.sh | sudo -u ncadmin bash
|
||||
#
|
||||
# Om git "dubious ownership" (root ägde repot):
|
||||
# If git "dubious ownership" (root owned the repo):
|
||||
# sudo bash scripts/fix-repo-ownership.sh
|
||||
#
|
||||
set -euo pipefail
|
||||
@@ -34,11 +34,11 @@ SKIP_APT="${SKIP_APT:-0}"
|
||||
SKIP_DOCKER_INSTALL="${SKIP_DOCKER_INSTALL:-1}"
|
||||
|
||||
log() { printf '[bootstrap] %s\n' "$*"; }
|
||||
warn() { printf '[bootstrap] VARNING: %s\n' "$*" >&2; }
|
||||
die() { printf '[bootstrap] FEL: %s\n' "$*" >&2; exit 1; }
|
||||
warn() { printf '[bootstrap] WARNING: %s\n' "$*" >&2; }
|
||||
die() { printf '[bootstrap] ERROR: %s\n' "$*" >&2; exit 1; }
|
||||
|
||||
run_as_root() {
|
||||
if [ "$(id -u)" -eq 0 ]; then "$@"; elif command -v sudo >/dev/null 2>&1; then sudo "$@"; else die "sudo krävs"; fi
|
||||
if [ "$(id -u)" -eq 0 ]; then "$@"; elif command -v sudo >/dev/null 2>&1; then sudo "$@"; else die "sudo required"; fi
|
||||
}
|
||||
|
||||
runtime_user() {
|
||||
@@ -58,7 +58,7 @@ reexec_as_install_user() {
|
||||
local user
|
||||
user="$(runtime_user)"
|
||||
if [ "$(id -un)" = "root" ] && [ "${user}" != "root" ] && [ -z "${BOOTSTRAP_REEXEC:-}" ]; then
|
||||
log "Kör om som ${user} (inte root)..."
|
||||
log "Re-running as ${user} (not root)..."
|
||||
export BOOTSTRAP_REEXEC=1
|
||||
export INSTALL_DIR NODERED_DIR INSTALL_MODE GIT_REPO_URL GIT_BRANCH
|
||||
exec sudo -u "${user}" -H env \
|
||||
@@ -80,7 +80,7 @@ fix_repo_ownership() {
|
||||
[ -d "${INSTALL_DIR}" ] || return 0
|
||||
owner="$(stat -c '%U' "${INSTALL_DIR}" 2>/dev/null || echo "")"
|
||||
if [ -n "${owner}" ] && [ "${owner}" != "${user}" ]; then
|
||||
log "Repo ägs av ${owner} — sätter ägare ${user}:${group}"
|
||||
log "Repo owned by ${owner} — setting owner ${user}:${group}"
|
||||
run_as_root chown -R "${user}:${group}" "${INSTALL_DIR}"
|
||||
fi
|
||||
}
|
||||
@@ -98,7 +98,7 @@ ensure_git_safe_directory() {
|
||||
install_apt_packages() {
|
||||
[ "${SKIP_APT}" = "1" ] && return 0
|
||||
command -v apt-get >/dev/null 2>&1 || return 0
|
||||
log "Installerar git, curl, rsync..."
|
||||
log "Installing git, curl, rsync..."
|
||||
run_as_root apt-get update -qq
|
||||
run_as_root apt-get install -y -qq git curl ca-certificates rsync
|
||||
}
|
||||
@@ -106,7 +106,7 @@ install_apt_packages() {
|
||||
install_docker() {
|
||||
[ "${SKIP_DOCKER_INSTALL}" = "1" ] && return 0
|
||||
command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1 && return 0
|
||||
log "Installerar Docker..."
|
||||
log "Installing Docker..."
|
||||
curl -fsSL https://get.docker.com | run_as_root sh
|
||||
}
|
||||
|
||||
@@ -115,13 +115,13 @@ clone_or_update_repo() {
|
||||
ensure_git_safe_directory
|
||||
|
||||
if [ -d "${INSTALL_DIR}/.git" ]; then
|
||||
log "Uppdaterar ${INSTALL_DIR}..."
|
||||
log "Updating ${INSTALL_DIR}..."
|
||||
git -C "${INSTALL_DIR}" fetch origin
|
||||
git -C "${INSTALL_DIR}" checkout "${GIT_BRANCH}"
|
||||
git -C "${INSTALL_DIR}" pull --ff-only origin "${GIT_BRANCH}" || warn "git pull misslyckades"
|
||||
git -C "${INSTALL_DIR}" pull --ff-only origin "${GIT_BRANCH}" || warn "git pull failed"
|
||||
return 0
|
||||
fi
|
||||
log "Klonar ${GIT_REPO_URL} → ${INSTALL_DIR}"
|
||||
log "Cloning ${GIT_REPO_URL} → ${INSTALL_DIR}"
|
||||
mkdir -p "$(dirname "${INSTALL_DIR}")"
|
||||
git clone --branch "${GIT_BRANCH}" --depth 1 "${GIT_REPO_URL}" "${INSTALL_DIR}"
|
||||
fix_repo_ownership
|
||||
@@ -129,25 +129,25 @@ clone_or_update_repo() {
|
||||
}
|
||||
|
||||
preflight() {
|
||||
command -v docker >/dev/null 2>&1 || die "Docker saknas"
|
||||
command -v docker >/dev/null 2>&1 || die "Docker not found"
|
||||
docker ps --format '{{.Names}}' | grep -qx "${NODERED_CONTAINER}" \
|
||||
|| die "'${NODERED_CONTAINER}' körs inte — detta skript integrerar i befintlig Node-RED, skapar ingen ny"
|
||||
|| die "'${NODERED_CONTAINER}' is not running — this script integrates into existing Node-RED, does not create a new one"
|
||||
docker ps --format '{{.Names}}' | grep -qx "${CODE_CONTAINER}" \
|
||||
|| die "'${CODE_CONTAINER}' (Collabora) körs inte"
|
||||
[ -d "${NODERED_DIR}" ] || die "nextcloud-node-red-katalog saknas: ${NODERED_DIR}"
|
||||
log "OK: ${NODERED_CONTAINER} + ${CODE_CONTAINER} körs"
|
||||
|| die "'${CODE_CONTAINER}' (Collabora) is not running"
|
||||
[ -d "${NODERED_DIR}" ] || die "nextcloud-node-red directory missing: ${NODERED_DIR}"
|
||||
log "OK: ${NODERED_CONTAINER} + ${CODE_CONTAINER} running"
|
||||
}
|
||||
|
||||
main() {
|
||||
reexec_as_install_user
|
||||
|
||||
log "bootstrap v${VERSION} — läge: ${INSTALL_MODE} (befintlig Node-RED :${NODERED_PORT})"
|
||||
log "Användare: $(id -un)"
|
||||
log "bootstrap v${VERSION} — mode: ${INSTALL_MODE} (existing Node-RED :${NODERED_PORT})"
|
||||
log "User: $(id -un)"
|
||||
log "Repo → ${INSTALL_DIR}"
|
||||
log "Integrera → ${NODERED_DIR}"
|
||||
log "Integrate → ${NODERED_DIR}"
|
||||
|
||||
if [ "$(id -u)" -eq 0 ] && [ "$(runtime_user)" = "root" ]; then
|
||||
warn "Körs som root — rekommenderat: curl ... | sudo -u ncadmin bash"
|
||||
warn "Running as root — recommended: curl ... | sudo -u ncadmin bash"
|
||||
fi
|
||||
|
||||
install_apt_packages
|
||||
@@ -168,13 +168,13 @@ main() {
|
||||
cat <<EOF
|
||||
|
||||
================================================================================
|
||||
Klart — Collabora-noder i befintlig nextcloud-node-red
|
||||
Done — Collabora nodes in existing nextcloud-node-red
|
||||
================================================================================
|
||||
Node-RED: http://${host_ip}:${NODERED_PORT} (samma som förut)
|
||||
Node-RED: http://${host_ip}:${NODERED_PORT} (same as before)
|
||||
Repo: ${INSTALL_DIR}
|
||||
Patchad: ${NODERED_DIR}
|
||||
Patched: ${NODERED_DIR}
|
||||
|
||||
Uppdatera senare:
|
||||
Update later:
|
||||
cd ${INSTALL_DIR} && git pull && ./install.sh
|
||||
|
||||
EOF
|
||||
|
||||
Reference in New Issue
Block a user