mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
63 lines
1.7 KiB
Bash
Executable File
63 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
LANGS_OUTPUT="./i18n"
|
|
|
|
output_folder(){
|
|
if [ $1 -eq 0 ]; then
|
|
echo "No arguments supplied. Default path for output will be used ./i18n"
|
|
else
|
|
LANGS_OUTPUT="$1"
|
|
fi
|
|
}
|
|
|
|
show_help() {
|
|
echo "Usage: extract-langs.sh Extract the i18n files from the repo and create a zip"
|
|
echo ""
|
|
echo "--output or -o to specify a folder otherwise it will be created in i18n"
|
|
}
|
|
|
|
while [[ $1 == -* ]]; do
|
|
case "$1" in
|
|
-h|--help|-\?) show_help; exit 0;;
|
|
--output|-o) output_folder $2; shift;;
|
|
esac
|
|
done
|
|
|
|
COMPONENTS_ROOT="$DIR/../../lib"
|
|
|
|
# Find all directories in $COMPONENTS_ROOT called i18n and add the demo-shell manually
|
|
COMPONENTS=(`find $COMPONENTS_ROOT -type d -name i18n -not \( -name '*.*' -o -path '**/node_modules*' -o -path '**/bundles*' \)`)
|
|
|
|
# Loop the individual components
|
|
for COMPONENT_DIR in "${COMPONENTS[@]}"
|
|
do :
|
|
|
|
echo "Processing $COMPONENT_DIR"
|
|
|
|
# Grab *.json in the components i18n dir
|
|
FILES=(`find $COMPONENT_DIR -type f -name "*.json"`)
|
|
|
|
# Loop each i18n file
|
|
for i in "${FILES[@]}"
|
|
do :
|
|
|
|
# Match the filename and extension into two groups so we can use the name as a folder for the output folder
|
|
if [[ $i =~ /([a-zA-Z0-9_-]*)(\.json)$ ]] ; then
|
|
|
|
TMP=${BASH_REMATCH[1]} # Will contain "en", "it", "ru" etc. without .json
|
|
LANG=`echo "$TMP" | tr '[:lower:]' '[:upper:]'` # Conver to upper case
|
|
|
|
# Build the output path, ensure it exists then copy the file
|
|
DEST="$LANGS_OUTPUT/$LANG/${COMPONENT_DIR#${DIR}/../}"
|
|
echo "Copying $i to $DEST"
|
|
`mkdir -p $DEST`
|
|
`cp $i $DEST`
|
|
fi
|
|
done
|
|
done
|
|
|
|
echo "====== Create a zip ======"
|
|
zip -r ${LANGS_OUTPUT}/i18n.zip ./${LANGS_OUTPUT}/*
|