forked from calculate/calculate-overlay
parent
30ec866242
commit
86ec665f9e
@ -0,0 +1,72 @@
|
|||||||
|
calc_repo_dirs(){
|
||||||
|
get_list(){
|
||||||
|
local path=$1
|
||||||
|
local next
|
||||||
|
if [[ -e $path/parent ]]
|
||||||
|
then
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
if [[ $line =~ ^[a-z0-9]+: ]]
|
||||||
|
then
|
||||||
|
next=$(realpath /var/db/repos/${line%%:*}/profiles/${line#*:})
|
||||||
|
elif [[ ${line:0:1} == / ]]
|
||||||
|
then
|
||||||
|
next=$(realpath $line)
|
||||||
|
else
|
||||||
|
next=$(realpath $path/$line)
|
||||||
|
fi
|
||||||
|
get_list $next
|
||||||
|
echo $next
|
||||||
|
done < $1/parent
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_list $(realpath /etc/portage/make.profile)
|
||||||
|
}
|
||||||
|
|
||||||
|
calc_ini_files(){
|
||||||
|
local path
|
||||||
|
for path in $(calc_repo_dirs) \
|
||||||
|
/var/lib/calculate/calculate-update \
|
||||||
|
/var/lib/calculate \
|
||||||
|
/etc/calculate \
|
||||||
|
/var/calculate \
|
||||||
|
/var/calculate/remote
|
||||||
|
do
|
||||||
|
if [[ -e $path/ini.env ]]
|
||||||
|
then
|
||||||
|
echo $path/ini.env
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# The function reads values from all ini.env files into the ini array
|
||||||
|
# Create an array before calling `declare -A ini; get_ini`
|
||||||
|
get_ini(){
|
||||||
|
local line sec ini_file
|
||||||
|
for ini_file in $(calc_ini_files)
|
||||||
|
do
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
if [[ $line == *"["* ]]
|
||||||
|
then
|
||||||
|
line=${line#*[}
|
||||||
|
line=${line%%]*}
|
||||||
|
sec=$line
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [[ $line =~ ^[[:blank:]]*[#\;] || $line == '' ]]
|
||||||
|
then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
local var=${sec}.${line%%=*}
|
||||||
|
# remove trailing whitespace characters
|
||||||
|
var=${var%${var##*[![:space:]]}}
|
||||||
|
local val=${line#*=}
|
||||||
|
# remove leading whitespace characters
|
||||||
|
val=${val#${val%%[![:space:]]*}}
|
||||||
|
|
||||||
|
ini[$var]=$val
|
||||||
|
done < $ini_file
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in new issue