summaryrefslogtreecommitdiff
path: root/scripts/lint-doc.sh
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2018-04-04 20:04:39 +0100
committerFilipa Lacerda <filipa@gitlab.com>2018-04-04 20:04:39 +0100
commit85b45ce94de94a85bb341d2978f1471a21b9a0ff (patch)
treeab65c6cfefc07fd2a65c20e15d7fda98047886bb /scripts/lint-doc.sh
parentdd3b1526af1675f7686f189ec41b8d919b6835a2 (diff)
parentcb5bb4dbc67c5dd43bb7b27faf79ca79f8ae3e1f (diff)
downloadgitlab-ce-85b45ce94de94a85bb341d2978f1471a21b9a0ff.tar.gz
[ci skip] Merge branch 'master' into 44427-state-management-with-vuex
* master: (544 commits) Bulk deleting refs is handled by Gitaly by default Allow assigning and filtering issuables by ancestor group labels Fix links to subdirectories of a directory with a plus character in its path Add banzai filter to detect commit message trailers and properly link the users Render MR commit SHA instead "diffs" when viable Fix a transient failure by removing unneeded expectations Revert changelog entry for removed feature Revert "Allow CI/CD Jobs being grouped on version strings" Add support for Sidekiq JSON logging Resolve "Protected branches count is wrong when a wildcard includes several protected branches" Remove unused form for admin application settings Use standard codequality job Resolve "Allow the configuration of a project's merge method via the API" Move the rest of application settings to expandable blocks [Rails5] Rename `sort` methods to `sort_by_attribute` Add better LDAP connection handling Updated components to PascalCase Handle invalid params when trying update_username Move network related app settings to expandable blocks [Rails5] Update Gemfile.rails5.lock [ci skip] ...
Diffstat (limited to 'scripts/lint-doc.sh')
-rwxr-xr-xscripts/lint-doc.sh34
1 files changed, 31 insertions, 3 deletions
diff --git a/scripts/lint-doc.sh b/scripts/lint-doc.sh
index e5242fee32b..178b209aacf 100755
--- a/scripts/lint-doc.sh
+++ b/scripts/lint-doc.sh
@@ -3,7 +3,7 @@
cd "$(dirname "$0")/.."
# Use long options (e.g. --header instead of -H) for curl examples in documentation.
-echo 'Checking for curl short options...'
+echo '=> Checking for cURL short options...'
grep --extended-regexp --recursive --color=auto 'curl (.+ )?-[^- ].*' doc/ >/dev/null 2>&1
if [ $? == 0 ]
then
@@ -15,7 +15,7 @@ fi
# Ensure that the CHANGELOG.md does not contain duplicate versions
DUPLICATE_CHANGELOG_VERSIONS=$(grep --extended-regexp '^## .+' CHANGELOG.md | sed -E 's| \(.+\)||' | sort -r | uniq -d)
-echo 'Checking for CHANGELOG.md duplicate entries...'
+echo '=> Checking for CHANGELOG.md duplicate entries...'
if [ "${DUPLICATE_CHANGELOG_VERSIONS}" != "" ]
then
echo '✖ ERROR: Duplicate versions in CHANGELOG.md:' >&2
@@ -25,7 +25,7 @@ fi
# Make sure no files in doc/ are executable
EXEC_PERM_COUNT=$(find doc/ app/ -type f -perm 755 | wc -l)
-echo 'Checking for executable permissions...'
+echo '=> Checking for executable permissions...'
if [ "${EXEC_PERM_COUNT}" -ne 0 ]
then
echo '✖ ERROR: Executable permissions should not be used in documentation! Use `chmod 644` to the files in question:' >&2
@@ -33,5 +33,33 @@ then
exit 1
fi
+# Do not use 'README.md', instead use 'index.md'
+# Number of 'README.md's as of 2018-03-26
+NUMBER_READMES_CE=42
+NUMBER_READMES_EE=46
+FIND_READMES=$(find doc/ -name "README.md" | wc -l)
+echo '=> Checking for new README.md files...'
+if [ "${CI_PROJECT_NAME}" == 'gitlab-ce' ]
+then
+ if [ ${FIND_READMES} -ne ${NUMBER_READMES_CE} ]
+ then
+ echo
+ echo ' ✖ ERROR: New README.md file(s) detected, prefer index.md over README.md.' >&2
+ echo ' https://docs.gitlab.com/ee/development/writing_documentation.html#location-and-naming-documents'
+ echo
+ exit 1
+ fi
+elif [ "${CI_PROJECT_NAME}" == 'gitlab-ee' ]
+then
+ if [ ${FIND_READMES} -ne $NUMBER_READMES_EE ]
+ then
+ echo
+ echo ' ✖ ERROR: New README.md file(s) detected, prefer index.md over README.md.' >&2
+ echo ' https://docs.gitlab.com/ee/development/writing_documentation.html#location-and-naming-documents'
+ echo
+ exit 1
+ fi
+fi
+
echo "✔ Linting passed"
exit 0