mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 12:11:56 +00:00
44 lines
996 B
Bash
Executable File
44 lines
996 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
|
|
|
IFS="-" read -ra FEATURES <<< "$ENVIRONMENT"
|
|
|
|
feature_file_checker='
|
|
/^#/ { next }
|
|
/^\+ [a-z0-9-]+$/ { next }
|
|
/^- [a-z0-9-]+$/ { next }
|
|
{ exit 1 }
|
|
'
|
|
|
|
for type in conflicts depends; do
|
|
pkgs=()
|
|
for feature in ${FEATURES[@]}; do
|
|
file="$feature.$type"
|
|
if [ -f $file ]; then
|
|
# TODO check for syntax errrors
|
|
cat $file | awk "$feature_file_checker"
|
|
for pkg in $(cat $file | awk '/^\+/ {print $2}'); do
|
|
pkgs+=($pkg)
|
|
done
|
|
fi
|
|
done
|
|
for pkg in $(cat $type); do
|
|
SKIP=
|
|
for feature in ${FEATURES[@]}; do
|
|
file="$feature.$type"
|
|
if [ -f $file ]; then
|
|
if grep "^- $pkg$" $file; then
|
|
SKIP=1
|
|
fi
|
|
fi
|
|
done
|
|
if [ -z $SKIP ]; then
|
|
pkgs+=($pkg)
|
|
fi
|
|
done
|
|
(IFS=$'\n'; echo "${pkgs[*]}") | sort -u > ../lib/$type
|
|
done
|