mirror of
https://github.com/aliasvault/aliasvault.git
synced 2026-04-04 06:52:16 -04:00
94 lines
3.2 KiB
Bash
Executable File
94 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Show the latest changelogs for all platforms (Android, iOS, Browser Extension)
|
|
# Outputs formatted changelog content for easy copy-paste
|
|
#
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
METADATA_DIR="$ROOT_DIR/fastlane/metadata"
|
|
|
|
# Function to get the latest changelog file from a directory
|
|
get_latest_changelog() {
|
|
local dir="$1"
|
|
if [ -d "$dir" ]; then
|
|
# Sort files by version number (handles both numeric and semver formats)
|
|
ls -1 "$dir" 2>/dev/null | sort -V | tail -1
|
|
fi
|
|
}
|
|
|
|
# Function to print Android changelogs (XML format, no spaces between languages)
|
|
print_android() {
|
|
local changelog_dir="$METADATA_DIR/android/en-US/changelogs"
|
|
local latest_file=$(get_latest_changelog "$changelog_dir")
|
|
|
|
echo "================================================================================"
|
|
echo "ANDROID (latest: $latest_file)"
|
|
echo "================================================================================"
|
|
echo ""
|
|
|
|
# Print all locales in XML format without blank lines between them
|
|
for locale_dir in "$METADATA_DIR/android"/*; do
|
|
if [ -d "$locale_dir/changelogs" ]; then
|
|
locale=$(basename "$locale_dir")
|
|
local file="$locale_dir/changelogs/$latest_file"
|
|
if [ -f "$file" ]; then
|
|
echo "<$locale>"
|
|
# Strip trailing whitespace from each line, then remove trailing blank lines
|
|
awk '{sub(/[[:space:]]+$/, ""); lines[NR] = $0} END {
|
|
# Find last non-empty line
|
|
for (i = NR; i >= 1; i--) {
|
|
if (lines[i] != "") {
|
|
last = i;
|
|
break;
|
|
}
|
|
}
|
|
# Print up to last non-empty line
|
|
for (i = 1; i <= last; i++) {
|
|
print lines[i];
|
|
}
|
|
}' "$file"
|
|
echo "</$locale>"
|
|
fi
|
|
fi
|
|
done
|
|
echo ""
|
|
}
|
|
|
|
# Function to print iOS/Browser Extension changelogs (each language separate)
|
|
print_simple() {
|
|
local platform="$1"
|
|
local display_name="$2"
|
|
local changelog_dir="$METADATA_DIR/$platform/en-US/changelogs"
|
|
local latest_file=$(get_latest_changelog "$changelog_dir")
|
|
|
|
echo "================================================================================"
|
|
echo "$display_name (latest: $latest_file)"
|
|
echo "================================================================================"
|
|
|
|
# Print each locale separately
|
|
for locale_dir in "$METADATA_DIR/$platform"/*; do
|
|
if [ -d "$locale_dir/changelogs" ]; then
|
|
locale=$(basename "$locale_dir")
|
|
local file="$locale_dir/changelogs/$latest_file"
|
|
if [ -f "$file" ]; then
|
|
echo ""
|
|
echo "--- $locale ---"
|
|
cat "$file"
|
|
fi
|
|
fi
|
|
done
|
|
echo ""
|
|
}
|
|
|
|
echo ""
|
|
echo "Latest Changelogs Summary"
|
|
echo ""
|
|
|
|
print_android
|
|
print_simple "ios" "iOS"
|
|
print_simple "browser-extension" "BROWSER EXTENSION"
|
|
|
|
echo "================================================================================"
|
|
echo ""
|