64 lines
1.7 KiB
Bash
Executable File
64 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
HEADER_KEY="THIS HEADER IS AUTOGENERATED. DO NOT MODIFY MANUALLY."
|
|
HEADER="/** $HEADER_KEY For any changes, please update the '/openvidu-meet/types' directory. */"
|
|
SOURCE_DIR="src"
|
|
|
|
FRONTEND_DIR="../frontend/projects/shared-meet-components/src/lib/typings/ce"
|
|
BACKEND_DIR="../backend/src/typings/ce"
|
|
TYPES_DIR="../../openvidu-meet-pro/types/src/ce"
|
|
|
|
add_headers() {
|
|
find "$SOURCE_DIR" -type f -name "*.ts" | while IFS= read -r file; do
|
|
if ! grep -qF "$HEADER_KEY" "$file"; then
|
|
printf "%s\n\n%s" "$HEADER" "$(cat "$file")" > "${file}.tmp" && mv "${file}.tmp" "$file"
|
|
fi
|
|
done
|
|
}
|
|
|
|
remove_headers() {
|
|
find "$SOURCE_DIR" -type f -name "*.ts" | while IFS= read -r file; do
|
|
if grep -qF "$HEADER_KEY" "$file"; then
|
|
awk -v header_key="$HEADER_KEY" '
|
|
BEGIN { skip = 0 }
|
|
{
|
|
if (skip) {
|
|
if ($0 ~ /^$/) { skip = 0 }
|
|
next
|
|
}
|
|
if ($0 ~ /^\/\*\* .*'"$HEADER_KEY"'.*\*\/$/) {
|
|
skip = 1
|
|
next
|
|
}
|
|
print
|
|
}
|
|
' "$file" > "${file}.tmp" && mv "${file}.tmp" "$file"
|
|
fi
|
|
done
|
|
}
|
|
|
|
if [[ $1 == "ce" ]]; then
|
|
TARGET_DIRS=("$FRONTEND_DIR" "$BACKEND_DIR")
|
|
elif [[ $1 == "pro" ]]; then
|
|
TARGET_DIRS=("$TYPES_DIR")
|
|
else
|
|
echo "No argument provided. Copying to both CE and PRO"
|
|
TARGET_DIRS=("$FRONTEND_DIR" "$BACKEND_DIR" "$TYPES_DIR")
|
|
fi
|
|
|
|
|
|
echo "Adding autogenerated comments to files..."
|
|
add_headers
|
|
|
|
|
|
echo "Copying files to target directories..."
|
|
for TARGET_DIR in "${TARGET_DIRS[@]}"; do
|
|
mkdir -p "$TARGET_DIR"
|
|
cp -rT "$SOURCE_DIR" "$TARGET_DIR"
|
|
done
|
|
|
|
echo "Restoring original files..."
|
|
remove_headers
|
|
|
|
echo "Types have been synced successfully."
|