fix: start faster by skipping lines scripts do not need
This commit is contained in:
1 parent
e9311431f8
commit
677660c1c6
1 file changed
+7
-1
+7
-1
@@ -486,6 +486,11 @@ _mca_script_target() {
|
|||||||
|
|
||||||
MCA_SCRIPT_VARS=()
|
MCA_SCRIPT_VARS=()
|
||||||
|
|
||||||
|
# Only assignments and exec lines matter, and the shell is slow at reading
|
||||||
|
# a big script line by line. So grep picks them out, and a script with no
|
||||||
|
# exec at all (winetricks has 20000 lines of that) is not read here at all.
|
||||||
|
grep -qaE '^[[:space:]]*exec[[:space:]]' -- "$script" 2>/dev/null || return 1
|
||||||
|
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
if [[ $line =~ $re_assign ]]; then
|
if [[ $line =~ $re_assign ]]; then
|
||||||
name="${BASH_REMATCH[2]}"
|
name="${BASH_REMATCH[2]}"
|
||||||
@@ -543,7 +548,8 @@ _mca_script_target() {
|
|||||||
fi
|
fi
|
||||||
return $?
|
return $?
|
||||||
done
|
done
|
||||||
done < "$script"
|
done < <(grep -aE '^[[:space:]]*((export[[:space:]]+)?[A-Za-z_][A-Za-z0-9_]*=|exec[[:space:]])' \
|
||||||
|
-- "$script" 2>/dev/null)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user