--- /dev/null
+name: Transifex
+on: [pull_request]
+
+jobs:
+ messages:
+ name: Check messages.po changes
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install gettext
+ run: sudo apt-get install gettext
+
+ - name: Checkout Friendica Base
+ uses: actions/checkout@v2
+ with:
+ repository: 'friendica/friendica'
+ ref: ${{ github.base_ref }}
+
+ - name: Checkout current Friendica Addons
+ uses: actions/checkout@v2
+ with:
+ path: 'addons'
+
+ - name: Get changed files
+ id: changes
+ uses: jitterbit/get-changed-files@v1
+
+ - name: Run Xgettext for each changed addon
+ run: |
+ find_result="$(${{ steps.changes.outputs.all }} | cut -d "/" -f1 | uniq)"
+ for addon in $find_result
+ do
+ ./bin/run_xgettext.sh --addon $addon
+ done
+
+ - name: Check if messages.po needs an update
+ run: |
+ echo "::group::Check messages.po"
+ # Skip all lines of the git diff starting with "@@" or comments or starting "POT-Creation-Date"
+ cd addons/
+ if [[ $(git diff -U0 "**/messages.po" | awk '!/index|diff|\-\-\-|\+\+\+|@@|\-"POT-Creation-Date|\+"POT-Creation-Date|\+#|\-#/{print }' | wc -l) > 0 ]]; then
+ echo "::error file=messages.po::messages.po is out of date"
+ exit 1
+ else
+ echo "Nothing to update"
+ fi
+ echo "::endgroup::"
+ shell: bash