quick script to help find what the lib path needed to launch
This commit is contained in:
57
library-path-helper.sh
Normal file
57
library-path-helper.sh
Normal file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Define the program and the expected substring in the output
|
||||
PROGRAM="PROGRAM TO RUN"
|
||||
EXPECTED_OUTPUT="SUBSTRING TO CHECK FOR"
|
||||
|
||||
# Supply the initial LD_LIBRARY_PATH as a variable
|
||||
INITIAL_LD_LIBRARY_PATH="$1"
|
||||
|
||||
# Check if the variable is supplied
|
||||
if [ -z "$INITIAL_LD_LIBRARY_PATH" ]; then
|
||||
echo "Error: Please provide the initial LD_LIBRARY_PATH as the first argument."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Read the supplied LD_LIBRARY_PATH into an array
|
||||
IFS=':' read -ra LIB_PATHS <<< "$INITIAL_LD_LIBRARY_PATH"
|
||||
|
||||
# Function to generate combinations of a specific size
|
||||
combinations() {
|
||||
local size=$1
|
||||
local prefix=$2
|
||||
local start_index=${3:-0}
|
||||
local remaining=("${@:4}")
|
||||
local count=${#remaining[@]}
|
||||
|
||||
if [ $size -eq 0 ]; then
|
||||
# Export the current combination of LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH="$prefix"
|
||||
|
||||
# Start the program and capture its output
|
||||
echo "Trying with LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
|
||||
OUTPUT=$("$PROGRAM" 2>&1)
|
||||
|
||||
# Check if the output contains the expected substring
|
||||
if [[ "$OUTPUT" == *"$EXPECTED_OUTPUT"* ]]; then
|
||||
echo "Success! Output contains the expected substring with LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
|
||||
exit 0
|
||||
else
|
||||
echo "Output does not contain the expected substring."
|
||||
fi
|
||||
else
|
||||
for ((i = start_index; i < count; i++)); do
|
||||
local next_prefix="${prefix}:${remaining[i]}"
|
||||
local next_remaining=("${remaining[@]:0:i}" "${remaining[@]:i+1}")
|
||||
combinations $((size - 1)) "${next_prefix#:}" $((i + 1)) "${remaining[@]}"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# Generate combinations incrementally by size
|
||||
for size in $(seq 1 ${#LIB_PATHS[@]}); do
|
||||
echo "Trying combinations of size $size..."
|
||||
combinations $size "" 0 "${LIB_PATHS[@]}"
|
||||
done
|
||||
|
||||
echo "All combinations attempted, no match found."
|
||||
Reference in New Issue
Block a user