diff --git a/.github/workflows/transifex.yml b/.github/workflows/transifex.yml new file mode 100644 index 00000000..07ddddc1 --- /dev/null +++ b/.github/workflows/transifex.yml @@ -0,0 +1,47 @@ +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