56 lines
1.1 KiB
Bash
Executable file
56 lines
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
folders=("engine/src" "lib/raylib/include" "lib/tiny/inc" "lib/luajit/inc")
|
|
names=("enginend" "raylib" "tiny" "luajit")
|
|
outdir="include"
|
|
types=("h" "hpp")
|
|
|
|
mkdir -p "$outdir"
|
|
|
|
|
|
create_symlinks() {
|
|
local src="$1"
|
|
local outnam="$2"
|
|
local currout="$outdir/$outnam"
|
|
|
|
mkdir -p "$currout"
|
|
|
|
find "$src" -mindepth 1 -print0 | while IFS= read -r -d '' item; do
|
|
rl="${item#$src/}"
|
|
outpath="$currout/$rl"
|
|
mkdir -p "$(dirname "$outpath")"
|
|
|
|
if [ -f "$item" ]; then
|
|
nam=$(basename "$item")
|
|
ftype="${nam##*.}"
|
|
|
|
skip=true
|
|
for type in "${types[@]}"; do
|
|
if [ "$ftype" = "$type" ]; then
|
|
skip=false
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ "$skip" = false ]; then
|
|
ln -sf "$(realpath --relative-to="$(dirname "$outpath")" "$item")" "$outpath"
|
|
fi
|
|
elif [ -d "$item" ]; then
|
|
mkdir -p "$outpath"
|
|
fi
|
|
done
|
|
}
|
|
|
|
for i in "${!folders[@]}"; do
|
|
if [ $i -lt ${#names[@]} ]; then
|
|
src="${folders[$i]}"
|
|
outnam="${names[$i]}"
|
|
|
|
if [ -d "$src" ]; then
|
|
create_symlinks "$src" "$outnam"
|
|
echo
|
|
else
|
|
echo "'$src' not exist"
|
|
fi
|
|
fi
|
|
done
|