summaryrefslogtreecommitdiff
path: root/.github/workflows/scripts/check-size.sh
blob: e6efd068ac955c4dc52c2fe04d7a5fde2bb09e50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh
set -eu

SIZE_LIMIT=150000

check_size() {
    local size=$(stat --printf="%s" $1)
    if [ "$size" -gt "$SIZE_LIMIT" ]; then
        echo "File $1 is bigger than specified $SIZE_LIMIT limit"
        exit 1
    fi
}

check_md_name() {
	shouldname="$(echo "$1" |
		iconv --to-code=utf-8 |
		sed "s/^\(src\/\)\?/src\//" |
		tr '[:upper:]' '[:lower:]' |
		tr ' ' '-')"
	if [ "$shouldname" != "$1" ]; then
		echo "$1 should be named $shouldname."
		exit 1
	fi
}

git diff --name-only `git merge-base origin/master HEAD` | while IFS= read -r file; do
    case "$file" in
        *.webp)
            echo "Checking size of $file"
            check_size $file
            ;;
	*.md) check_md_name "$file" ;;
    esac
done