Select Git revision
generate.sh
generate.sh 1.69 KiB
#!/bin/bash
generate_index() {
for path in "$@"; do
local base=$(basename "${path}")
local exac=${base%.ts}
local dir=$(dirname "${path}")
local segments
local p
IFS="/" read -a segments <<< $path
for segment in ${segments[@]}; do
if [ "$segment" == "." ] || [ "$segment" == "dist" ]; then
p+="$segment"
p+="/"
continue
fi
local exp
if [ "$segment" == "$base" ]; then
exp="export * from './$exac'"
if ! grep -Fxq "$exp" "$dir"/index.ts; then
echo "$exp" | tee -a "$dir"/index.ts
fi
p=""
elif [ "$segment" == "$exac" ]; then
exp="export * as $segment from './$segment'"
if ! grep -Fxq "$exp" "$p"/index.ts; then
echo "$exp" | tee -a "$p"/index.ts
fi
p+="$segment"
p+="/"
else
exp="export * as $segment from './$segment'"
if ! grep -Fxq "$exp" "$p"index.ts; then
echo "$exp" | tee -a "$p"index.ts
fi
p+="$segment"
p+="/"
fi
done
done
}
echo "Generate index.ts files"
ts_files=$(find ./config/dist/**/ -name '*.ts')
ts_files_array=($ts_files)
generate_index "${ts_files_array[@]}"
echo "Generate *.d.ts, *.d.ts.map, *.js, *.js.map files"
tsc --project ./config --declaration --declarationMap --sourceMap --rootDir ./config/dist
echo "Delete created tmp files"
find ./config/dist -name 'index.ts' -delete
find ./config/dist/*/** -name 'index.ts' -delete
find ./config/ -maxdepth 1 -name 'index.ts' -delete
find ./ -maxdepth 1 -name '*.json' -delete
find ./ -maxdepth 1 -name '*.ts' -delete
find ./config/dist/*/** -name '*.ts' ! -name '*.d.ts' -delete
echo "---process finished"