#!/bin/bash (source) Import Directories Import File function Run_PostInstall() { local app_name app_ver sandbox_list map_list chroot_dir Parameters "$@" app_name app_ver sandbox_list map_list chroot_dir unset chroot_cmd if [ "$chroot_dir" != "" ] then local chroot_cmd="chroot $chroot_dir" fi local program_dir=`Get_Dir runtime "$app_name" "$app_ver"` local program_set=`Get_Dir runtimeSettings "$app_name" "$app_ver"` local rw_dest="${program_dir}/.PostInstall_Root" Exists "${program_dir}/Resources/PostInstall" || return 0 if ! Is_Executable "${program_dir}/Resources/PostInstall" then Log_Error "PostInstall not executable!" return 0 fi local sandbox_options="--sandbox $program_dir" Is_Directory "$program_set" && sandbox_options="${sandbox_options}:${program_set}" [ "$sandbox_list" != "" ] && sandbox_options="${sandbox_options}:${sandbox_list}" [ "$map_list" = "" ] || local map_options="--map $map_list" Log_Normal "Running PostInstall for $app_name" if [ "$chroot_cmd" == "" ] then Assert_Dir "/$rw_dest" target="$program_dir" settings_target="$program_set" \ UnionSandbox --writedir "$rw_dest" --directory "$program_dir" \ $sandbox_options $map_options -- ${program_dir}/Resources/PostInstall #Postprocess $rw_dest Log_Normal "Postprocessing PostInstall changes." local leftovers=`(cd "/$rw_dest"; find *) 2>/dev/null` [ "$leftovers" ] && Log_Normal "PostInstall tried to change:\n$leftovers" Quiet $sudo_exec rmdir "/$rw_dest" else target="$program_dir" settings_target="$program_set" \ ${chroot_cmd} ${program_dir}/Resources/PostInstall fi }