mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
52 lines
1.9 KiB
Makefile
52 lines
1.9 KiB
Makefile
DIR_PATTERN := (news|talk|tech)
|
|
NAME_PATTERN := [0-9]{8} [a-zA-Z0-9_.,() -]*\.md
|
|
|
|
RULES := rule-source-added \
|
|
rule-translation-requested \
|
|
rule-translation-completed \
|
|
rule-translation-revised \
|
|
rule-translation-published
|
|
.PHONY: check match $(RULES)
|
|
|
|
CHANGE_FILE := /tmp/changes
|
|
|
|
check: $(CHANGE_FILE)
|
|
echo 'PR #$(TRAVIS_PULL_REQUEST) Changes:'
|
|
cat $(CHANGE_FILE)
|
|
echo
|
|
echo 'Check for rules...'
|
|
make -k $(RULES) 2>/dev/null | grep '^Rule Matched: '
|
|
|
|
$(CHANGE_FILE):
|
|
git --no-pager diff $(TRAVIS_BRANCH) FETCH_HEAD --no-renames --name-status > $@
|
|
|
|
rule-source-added:
|
|
echo 'Unmatched Files:'
|
|
egrep -v '^A\s*"?sources/$(DIR_PATTERN)/$(NAME_PATTERN)"?' $(CHANGE_FILE) || true
|
|
echo '[End of Unmatched Files]'
|
|
[ $(shell egrep '^A\s*"?sources/$(DIR_PATTERN)/$(NAME_PATTERN)"?' $(CHANGE_FILE) | wc -l) -ge 1 ]
|
|
[ $(shell egrep -v '^A\s*"?sources/$(DIR_PATTERN)/$(NAME_PATTERN)"?' $(CHANGE_FILE) | wc -l) = 0 ]
|
|
echo 'Rule Matched: $(@)'
|
|
|
|
rule-translation-requested:
|
|
[ $(shell egrep '^M\s*"?sources/$(DIR_PATTERN)/$(NAME_PATTERN)"?' $(CHANGE_FILE) | wc -l) = 1 ]
|
|
[ $(shell cat $(CHANGE_FILE) | wc -l) = 1 ]
|
|
echo 'Rule Matched: $(@)'
|
|
|
|
rule-translation-completed:
|
|
[ $(shell egrep '^D\s*"?sources/$(DIR_PATTERN)/$(NAME_PATTERN)"?' $(CHANGE_FILE) | wc -l) = 1 ]
|
|
[ $(shell egrep '^A\s*"?translated/$(DIR_PATTERN)/$(NAME_PATTERN)"?' $(CHANGE_FILE) | wc -l) = 1 ]
|
|
[ $(shell cat $(CHANGE_FILE) | wc -l) = 2 ]
|
|
echo 'Rule Matched: $(@)'
|
|
|
|
rule-translation-revised:
|
|
[ $(shell egrep '^M\s*"?translated/$(DIR_PATTERN)/$(NAME_PATTERN)"?' $(CHANGE_FILE) | wc -l) = 1 ]
|
|
[ $(shell cat $(CHANGE_FILE) | wc -l) = 1 ]
|
|
echo 'Rule Matched: $(@)'
|
|
|
|
rule-translation-published:
|
|
[ $(shell egrep '^D\s*"?translated/$(DIR_PATTERN)/$(NAME_PATTERN)"?' $(CHANGE_FILE) | wc -l) = 1 ]
|
|
[ $(shell egrep '^A\s*"?published/$(NAME_PATTERN)' $(CHANGE_FILE) | wc -l) = 1 ]
|
|
[ $(shell cat $(CHANGE_FILE) | wc -l) = 2 ]
|
|
echo 'Rule Matched: $(@)'
|