s243a icon

DRAFT: RAM_LAUNCH_BROWSER.sh

s243a | PRO | 04/17/21 01:27:20 AM UTC | 0 ⭐ | 2417 👁️ | Never ⏰ | []
Bash |

1.8 KB

|

None

|

0 👍

/

0 👎

#!/bin/sh
#
# Launcher for 'portable' Iron browser
#
HERE="$(dirname "$(readlink -f "$0")")"
IRON_DIR="${HERE}/iron32"
SFS_Target=/initrd/mnt/tmpfs/Iron-portable32.sfs
if [ ls -A iron32 ]; then
  echo "Directory iron32 already mounted" >&2
 
else
  if [ ! -d /initrd/mnt/tmpfs/iron32-profile/PROFILE ]; then
    mkdir -p /initrd/mnt/tmpfs/iron32-profile/PROFILE/
    cp -rf iron32-dir/PROFILE/ /initrd/mnt/tmpfs/iron32-profile/
  fi
  if [ ! -e /initrd/mnt/tmpfs/Iron-portable32.sfs ]; then
    cp Iron-portable32.sfs "$SFS_Target"
  fi
  
append_mnt_id_awk='
function get_mnt_id(mnt_pt,loop){
  if (length(mnt_pt) > 0 && length(loop)>0){ 
    cmd="cat /proc/self/mountinfo | sort | grep '" loop "' | grep " mnt_pt " | head -n 1" 
  } else if (length(mnt_pt) > 0){
    cmd="cat /proc/self/mountinfo | sort | grep '" mnt_pt "' | head -n 1" 
  } else if (length(loop)>0){
    cmd="cat /proc/self/mountinfo | sort | grep '" loop "' | head -n 1" 
  }
  while ((cmd | getline )){
    mnt_id=$1
    break  
  }
  close(cmd)
  return mnt_id
}
{
  mnt_pt=$1
  loop=$2
  mnt_id=get_mnt_id(mnt_pt,loop) 
  print mnt_id "|" mnt_pt "|" loop
}'  
  loop=$(losetup -a | grep  /initrd/mnt/tmpfs/Iron-portable32.sfs  | sed "s/:.*$//" )
  if [ ! -z "$loop" ]; then #
    sfs_MP="$(findmnt -o TARGET,SOURCE -D -n | grep $loop\$ | awk "$append_mnt_id_awk" | sort -t '|' -k1 | cut -d'|' -f2 | head -n 1)"
  fi
  if [ -z "$sfs_MP" ]; then
    mkdir -p /initrd/mnt/tmpfs/Iron-portable32
    sfs_MP=/initrd/mnt/tmpfs/Iron-portable32
  fi
  mkdir -p "$sfs_MP"
  if [ ! "`ls -A "$sfs_MP"`" ]; then
    mount -r -t squashfs "$SFS_Target" "$sfs_MP"
  fi
  BRANCHES=/initrd/mnt/tmpfs/iron32-profile:"$sfs_MP"
  mkdir -p "$IRON_DIR"
  mount -t aufs -o br="$BRANCHES" aufs "$IRON_DIR"
fi
 
#
"$IRON_DIR/iron-pup" "$@"
 

Comments