-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmarkdown.sh
executable file
·74 lines (61 loc) · 1.36 KB
/
markdown.sh
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env bash
CONFIG_DIR="$HOME/.config/3mdeb-hooks"
errorExit() {
errorMessage="$1"
echo "$errorMessage"
exit 1
}
errorCheck() {
errorCode=$?
errorMessage="$1"
[ "$errorCode" -ne 0 ] && errorExit "$errorMessage : ($errorCode)"
}
usage() {
cat <<EOF
Usage: ./$(basename "${0}") <command> <file>
This script verifies the markdown file against our guidelines.
Commands:
check run the linter
fix also try to fix some errors automatically
EOF
exit 0
}
MARKDOWNLINT_CONTAINER="ghcr.io/igorshubovych/markdownlint-cli:v0.32.2"
check() {
docker run \
-v "$CONFIG_DIR"/.markdownlint.yaml:/workdir/.markdownlint.yaml:ro \
-v "$FULL_PATH":/workdir/"$FILE_NAME":ro \
"$MARKDOWNLINT_CONTAINER" \
-c .markdownlint.yaml "$FILE_NAME"
}
fix() {
docker run \
-v "$CONFIG_DIR"/.markdownlint.yaml:/workdir/.markdownlint.yaml:ro \
-v "$FULL_PATH":/workdir/"$FILE_NAME":rw \
"$MARKDOWNLINT_CONTAINER" \
-c .markdownlint.yaml --fix "$FILE_NAME"
}
CMD="$1"
FILE="$2"
if [ -z "$CMD" ]; then
echo "command not given"
usage
fi
if [ -z "$FILE" ]; then
echo "file not given"
usage
fi
FULL_PATH="$(readlink -f "$FILE")"
FILE_NAME="$(basename "$FULL_PATH")"
case "$CMD" in
"check")
check
;;
"fix")
fix
;;
*)
echo "Invalid command: \"$CMD\""
usage
;;
esac