Commit 6334cfc8 authored by databreach's avatar databreach Committed by GitHub
Browse files

Control device nodes

Add control over whether device nodes are created.
parent 451a5696
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
#!/usr/bin/env bash
set -Eeuo pipefail

: ${DEV:='Y'}      # Controls whether device nodes are created.

if [ -f "$STORAGE"/dsm.ver ]; then
  BASE=$(cat "${STORAGE}/dsm.ver")
else
@@ -107,8 +109,14 @@ if [ -f "${RDC}" ]; then
  { xz -dc <"$RDC" >"$TMP/rd" 2>/dev/null; rc=$?; } || :
  (( rc != 1 )) && error "Failed to unxz $RDC, reason $rc" && exit 91

  if [[ "${DEV}" == [Nn]* ]]; then
    # Exclude dev/ from cpio extract
    { (cd "$TMP" && cpio -it < "$TMP/rd" | grep -Ev 'dev/' | while read -r entry; do cpio -idm "$entry" < "$TMP/rd" 2>/dev/null; done); rc=$?; } || :
    (( rc != 0 )) && error "Failed to extract $RDC, reason $rc" && exit 92
  else
    { (cd "$TMP" && cpio -idm <"$TMP/rd" 2>/dev/null); rc=$?; } || :
    (( rc != 0 )) && error "Failed to cpio $RDC, reason $rc" && exit 92
  fi

  mkdir -p /run/extract
  for file in $TMP/usr/lib/libcurl.so.4 \
@@ -240,7 +248,13 @@ MOUNT="$TMP/system"
rm -rf "$MOUNT" && mkdir -p "$MOUNT"

mv "$HDA.tgz" "$HDA.txz"

if [[ "${DEV}" == [Nn]* ]]; then
  # Exclude dev/ from tar extract
  tar xpfJ "$HDA.txz" --absolute-names --exclude="dev" -C "$MOUNT/"
else
  tar xpfJ "$HDA.txz" --absolute-names -C "$MOUNT/"
fi

[ -d "$PKG" ] && mv "$PKG/" "$MOUNT/.SynoUpgradePackages/"
rm -f "$MOUNT/.SynoUpgradePackages/ActiveInsight-"*