Ctrl K
ComunidadGuías…

build/linux-after-remove.sh

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/bin/sh
set -eu

# dpkg runs the old postrm during an upgrade too. Keep the installed profile
# until the package is actually removed or purged. pacman's post_remove runs
# only on removal and passes the old version instead of an action word.
case "${1:-}" in
  remove|purge|[0-9]*) ;;
  *) exit 0 ;;
esac

if [ -n "${OPENMAUSBOT_POSTINSTALL_TEST_ROOT:-}" ]; then
  TEST_ROOT="$(realpath -e -- "$OPENMAUSBOT_POSTINSTALL_TEST_ROOT")"
  case "$TEST_ROOT" in
    /tmp/*) ;;
    *) echo "OpenMausBot test install root must stay under /tmp" >&2; exit 1 ;;
  esac
  APPARMOR_DIR=$TEST_ROOT/test-system/apparmor.d
  APPARMOR_PARSER=$TEST_ROOT/test-system/apparmor_parser
  APPARMOR_STATUS=$TEST_ROOT/test-system/apparmor_status
  APPARMOR_PROFILES=$TEST_ROOT/test-system/apparmor-profiles
  TEST_MODE=1
else
  APPARMOR_DIR=/etc/apparmor.d
  APPARMOR_PARSER=/sbin/apparmor_parser
  APPARMOR_STATUS=/sbin/apparmor_status
  APPARMOR_PROFILES=/sys/kernel/security/apparmor/profiles
  TEST_MODE=0
fi

# Preserve electron-builder's cleanup of the exact legacy launcher. Never
# remove an unrelated file that now happens to use the same command name.
if [ "$TEST_MODE" -eq 0 ]; then
  if command -v update-alternatives >/dev/null 2>&1; then
    update-alternatives --remove openmausbot /opt/OpenMausBot/openmausbot
  elif [ -L /usr/bin/openmausbot ] && [ "$(readlink /usr/bin/openmausbot)" = /opt/OpenMausBot/openmausbot ]; then
    rm -- /usr/bin/openmausbot
  fi
fi

profile=$APPARMOR_DIR/openmausbot-browser
if [ ! -e "$profile" ] && [ ! -L "$profile" ]; then exit 0; fi
if [ -L "$APPARMOR_DIR" ] || [ -L "$profile" ] || [ ! -f "$profile" ]; then
  echo "OpenMausBot AppArmor profile is unsafe; refusing to remove it: $profile" >&2
  exit 1
fi
if [ "$TEST_MODE" -eq 0 ] && [ -x /usr/bin/ischroot ] && /usr/bin/ischroot; then
  : # Removing from an image must not change the host's loaded profiles.
elif [ -x "$APPARMOR_STATUS" ] && ! "$APPARMOR_STATUS" --enabled >/dev/null 2>&1; then
  : # No live policy exists when AppArmor is disabled; remove the staged file.
elif [ -r "$APPARMOR_PROFILES" ] && ! grep -q '^openmausbot-browser ' "$APPARMOR_PROFILES"; then
  : # Already unloaded; purge must also work after an earlier removal.
elif [ -x "$APPARMOR_PARSER" ]; then
  # A profile may already be unloaded (for example during purge after remove).
  # Keep the policy file if unloading genuinely fails so an administrator can
  # inspect/retry the exact rule instead of leaving an invisible kernel rule.
  if ! "$APPARMOR_PARSER" -R "$profile"; then
    echo "OpenMausBot could not unload its browser AppArmor profile: $profile" >&2
    exit 1
  fi
elif [ -r "$APPARMOR_PROFILES" ]; then
  echo "OpenMausBot needs apparmor_parser to unload its browser profile: $profile" >&2
  exit 1
fi
rm -- "$profile"