s243a icon

get_puppy_path_fns.sh (draft)

s243a | PRO | 12/18/20 05:40:12 AM UTC (Edited) | 0 ⭐ | 1545 👁️ | Never ⏰ | []
Bash |

2.19 KB

|

None

|

0 👍

/

0 👎

function get_ws_field(){
  
}
function mnt_home_first(){
  local rest
  local first
  while read line; do
    if [[ "$line" = *dev_save* ]]; then
      first="$line"
    else
      rest="$rest"$'\n'"$line"
    fi
  done
  echo "$rest"| grep -v "^$"
}
function get_puppy_paths(){
  [ -z "$CWD" ] & CWD=$(realpath .)
  if [ -z "$PDRV" ]; then
   for a_folder in "${PSUBDIR}" "PSAVE" "$RW_LAYER"; do
   while read PDRV_line; do 
     if [ -z  "PSAVE" ] && [ -z "$RW_LAYER" ] && break
     PDRV_mnt_try=$(echo "$PDRV_line" | cut -f2 -d' ')
     #for a_path in "$PDRV_try/${PSUBDIR}" "PSAVE" "$RW_LAYER"; do
       a_path="$PDRV_try/$a_folder"
       key=md5_$(md5sum < <( echo "$a_path" ) | cut -f1 -d' ')
       Puppy_Path_Tries[$key]="$a_path"
       PDRV_mnt_tries[$key]="$PDRV_mnt_try"
       PDRV_dev_tries[$key]=$(echo "$PDRV_line" | cut -f1 -d' ')
    done < <(echo_pdrvs)
    for a_path in "PSAVE" "$RW_LAYER"; do
       PDRV_mnt_try=$(df "$a_path" | sed -r 's#^([^[:blank:]]+[[:blank:]]+){5,5}##g' | grep -v "Mounted on")
       PDRV_dev_try=$(df "$a_path" | cut -f1 -d' '| grep -v 'Filesystem')
 
     #for a_path in "$PDRV_try/${PSUBDIR}" "PSAVE" "$RW_LAYER"; do
       a_path="$PDRV_try/$a_folder"
       key=md5_$(md5sum < <( echo "$a_path" ) | cut -f1 -d' ')
       Puppy_Path_Tries[$key]=$a_path
       PDRV_mnt_tries[$key]=$PDRV_mnt_try
       PDRV_dev_tries[$key]=$PDRV_dev_try
    done    
    #done 
    for a_key in ${!PDRV_mnt_tries}; do
      PUPPY_SFS_try=$(ls -1 "${Puppy_Path_Tries[$key]}"/.. | grep -E 'puppy_.*[.]sfs')
      if [ ! -z "$PUPPY_SFS_try" ]; then
        get_puppy_paths__rtn__path=$(realpath "${Puppy_Path_Tries[$key]}")
        get_puppy_paths__rtn__dev=$(realpath "${PDRV_dev_tries[$key]}")
        get_puppy_paths__rtn__mnt=$(realpath "${PDRV_dev_tries[$key]}")
        break
      fi
    done
  done 
}
function echo_pdrvs(){
    if [ ! -z  "PSAVE" ] || [ ! -z "$RW_LAYER" ]; then 
      if [ -d 
      lsblk -lo NAME,TYPE,MOUNTPOINT | grep part | cut -f1,4 -d' ' | mnt_home_first #TODO make this more robust (e.g. handle multple spaces sperating fields)
    else #This is to keep the pipe from hanging. 
      echo /mnt/home
    fi
}
#export -f echo_pdrvs

Comments