diff --git a/.gitignore b/.gitignore index 1ce00a0af..21a69413d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ .DS_Store .md~ +# Local Ruby gems # +.gem/ + # JetBrains # .idea/ diff --git a/Gemfile b/Gemfile new file mode 100644 index 000000000..483454061 --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' + +gem 'mdl' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 000000000..45a0d8c43 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,16 @@ +GEM + remote: https://rubygems.org/ + specs: + kramdown (1.7.0) + mdl (0.2.1) + kramdown (~> 1.5, >= 1.5.0) + mixlib-cli (~> 1.5, >= 1.5.0) + mixlib-config (~> 2.1, >= 2.1.0) + mixlib-cli (1.5.0) + mixlib-config (2.1.0) + +PLATFORMS + ruby + +DEPENDENCIES + mdl diff --git a/Makefile b/Makefile index c007da19e..c50606c32 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,24 @@ +all: setup index + index: @TLDRHOME=`pwd` ./scripts/build_index.rb @echo "Index rebuilt." -setup: +setup: hooks deps + +hooks: @cp ./scripts/pre-commit .git/hooks @chmod +x .git/hooks/pre-commit @echo "Git pre-commit hook installed." + +deps: + @bundle + @echo "OK" + +lint: + @GEM_PATH=.gem find pages -exec .gem/bin/mdl {} --style ./scripts/markdown-style.rb 1>&2 \; + +lint-changed: + @./scripts/lint-changed.sh + +.PHONY: index setup hooks deps lint lint-changed diff --git a/pages/index.json b/pages/index.json index 1b17769cf..0751a602c 100644 --- a/pages/index.json +++ b/pages/index.json @@ -1 +1 @@ -{"commands":[{"name":"sw_vers","platform":["osx"]},{"name":"du","platform":["osx","linux"]},{"name":"system_profiler","platform":["osx"]},{"name":"systemsetup","platform":["osx"]},{"name":"md5","platform":["osx"]},{"name":"caffeinate","platform":["osx"]},{"name":"head","platform":["osx","linux"]},{"name":"route","platform":["osx"]},{"name":"drutil","platform":["osx"]},{"name":"xed","platform":["osx"]},{"name":"say","platform":["osx"]},{"name":"pbpaste","platform":["osx"]},{"name":"open","platform":["osx"]},{"name":"diskutil","platform":["osx"]},{"name":"locate","platform":["osx","linux"]},{"name":"sysctl","platform":["osx"]},{"name":"pbcopy","platform":["osx"]},{"name":"shutdown","platform":["osx","linux"]},{"name":"airport","platform":["osx"]},{"name":"brew","platform":["osx"]},{"name":"qlmanage","platform":["osx"]},{"name":"networksetup","platform":["osx"]},{"name":"xsltproc","platform":["osx"]},{"name":"wacaw","platform":["osx"]},{"name":"rm","platform":["common"]},{"name":"lsof","platform":["common"]},{"name":"salt-key","platform":["common"]},{"name":"tee","platform":["common"]},{"name":"chown","platform":["common"]},{"name":"handbrakecli","platform":["common"]},{"name":"which","platform":["common"]},{"name":"ls","platform":["common"]},{"name":"sed","platform":["common"]},{"name":"mysql","platform":["common"]},{"name":"ssh","platform":["common"]},{"name":"df","platform":["common"]},{"name":"wget","platform":["common"]},{"name":"ln","platform":["common"]},{"name":"svn","platform":["common"]},{"name":"diff","platform":["common"]},{"name":"cd","platform":["common"]},{"name":"env","platform":["common"]},{"name":"useradd","platform":["common"]},{"name":"cp","platform":["common"]},{"name":"rsync","platform":["common"]},{"name":"gcc","platform":["common"]},{"name":"sox","platform":["common"]},{"name":"more","platform":["common"]},{"name":"nmap","platform":["common"]},{"name":"less","platform":["common"]},{"name":"tcpdump","platform":["common"]},{"name":"node","platform":["common"]},{"name":"ar","platform":["common"]},{"name":"psql","platform":["common"]},{"name":"gzip","platform":["common"]},{"name":"tmux","platform":["common"]},{"name":"gem","platform":["common"]},{"name":"git-checkout","platform":["common"]},{"name":"gpg","platform":["common"]},{"name":"pip","platform":["common"]},{"name":"yes","platform":["common"]},{"name":"cksum","platform":["common"]},{"name":"usermod","platform":["common"]},{"name":"electrum","platform":["common"]},{"name":"passwd","platform":["common"]},{"name":"echo","platform":["common"]},{"name":"git-branch","platform":["common"]},{"name":"patch","platform":["common"]},{"name":"wc","platform":["common"]},{"name":"telnet","platform":["common"]},{"name":"git","platform":["common"]},{"name":"exiftool","platform":["common"]},{"name":"nc","platform":["common"]},{"name":"mkdir","platform":["common"]},{"name":"rmdir","platform":["common"]},{"name":"fdupes","platform":["common"]},{"name":"sudo","platform":["common"]},{"name":"mount","platform":["common"]},{"name":"haxelib","platform":["common"]},{"name":"iconv","platform":["common"]},{"name":"zfs","platform":["common"]},{"name":"find","platform":["common"]},{"name":"npm","platform":["common"]},{"name":"git-clone","platform":["common"]},{"name":"ack","platform":["common"]},{"name":"ab","platform":["common"]},{"name":"tail","platform":["common"]},{"name":"traceroute","platform":["common"]},{"name":"curl","platform":["common"]},{"name":"git-status","platform":["common"]},{"name":"tree","platform":["common"]},{"name":"zip","platform":["common"]},{"name":"split","platform":["common"]},{"name":"sshfs","platform":["common"]},{"name":"git-commit","platform":["common"]},{"name":"time","platform":["common"]},{"name":"ping","platform":["common"]},{"name":"sort","platform":["common"]},{"name":"salt-call","platform":["common"]},{"name":"git-init","platform":["common"]},{"name":"screen","platform":["common"]},{"name":"git-push","platform":["common"]},{"name":"man","platform":["common"]},{"name":"cat","platform":["common"]},{"name":"mysqldump","platform":["common"]},{"name":"mv","platform":["common"]},{"name":"git-stash","platform":["common"]},{"name":"cut","platform":["common"]},{"name":"touch","platform":["common"]},{"name":"chmod","platform":["common"]},{"name":"nohup","platform":["common"]},{"name":"ffmpeg","platform":["common"]},{"name":"pwd","platform":["common"]},{"name":"userdel","platform":["common","linux"]},{"name":"ag","platform":["common"]},{"name":"pushd","platform":["common"]},{"name":"srm","platform":["common"]},{"name":"cal","platform":["common"]},{"name":"date","platform":["common"]},{"name":"rename","platform":["common"]},{"name":"grep","platform":["common"]},{"name":"scp","platform":["common"]},{"name":"play","platform":["common"]},{"name":"unzip","platform":["common"]},{"name":"gifsicle","platform":["common"]},{"name":"chsh","platform":["common"]},{"name":"redis-cli","platform":["common"]},{"name":"ps","platform":["common"]},{"name":"mtr","platform":["common"]},{"name":"git-add","platform":["common"]},{"name":"tldr","platform":["common"]},{"name":"php","platform":["common"]},{"name":"tar","platform":["common"]},{"name":"umount","platform":["common"]},{"name":"fswebcam","platform":["common"]},{"name":"deluser","platform":["common"]},{"name":"git-diff","platform":["common"]},{"name":"uname","platform":["common"]},{"name":"alias","platform":["common"]},{"name":"kill","platform":["common"]},{"name":"git-merge","platform":["common"]},{"name":"ipcs","platform":["common"]},{"name":"awk","platform":["common"]},{"name":"convert","platform":["common"]},{"name":"zpool","platform":["common"]},{"name":"pgrep","platform":["common"]},{"name":"bundle","platform":["common"]},{"name":"dig","platform":["common"]},{"name":"apropos","platform":["common"]},{"name":"git-log","platform":["common"]},{"name":"mp4box","platform":["common"]},{"name":"prctl","platform":["sunos"]},{"name":"prstat","platform":["sunos"]},{"name":"svccfg","platform":["sunos"]},{"name":"svcs","platform":["sunos"]},{"name":"svcadm","platform":["sunos"]},{"name":"sha384sum","platform":["linux"]},{"name":"base64","platform":["linux"]},{"name":"findmnt","platform":["linux"]},{"name":"sha1sum","platform":["linux"]},{"name":"netstat","platform":["linux"]},{"name":"systemctl","platform":["linux"]},{"name":"sha256sum","platform":["linux"]},{"name":"firewall-cmd","platform":["linux"]},{"name":"journalctl","platform":["linux"]},{"name":"apt-get","platform":["linux"]},{"name":"mdadm","platform":["linux"]},{"name":"emerge","platform":["linux"]},{"name":"dpkg","platform":["linux"]},{"name":"wall","platform":["linux"]},{"name":"ss","platform":["linux"]},{"name":"aptitude","platform":["linux"]},{"name":"sha512sum","platform":["linux"]},{"name":"watch","platform":["linux"]},{"name":"ip","platform":["linux"]},{"name":"sha224sum","platform":["linux"]},{"name":"xargs","platform":["linux"]},{"name":"tcpflow","platform":["linux"]},{"name":"pacman","platform":["linux"]},{"name":"free","platform":["linux"]},{"name":"iostat","platform":["linux"]},{"name":"shuf","platform":["linux"]},{"name":"md5sum","platform":["linux"]},{"name":"wpa_cli","platform":["linux"]}]} \ No newline at end of file +{"commands":[{"name":"ab","platform":["common"]},{"name":"ack","platform":["common"]},{"name":"ag","platform":["common"]},{"name":"alias","platform":["common"]},{"name":"apropos","platform":["common"]},{"name":"ar","platform":["common"]},{"name":"awk","platform":["common"]},{"name":"bundle","platform":["common"]},{"name":"cal","platform":["common"]},{"name":"cat","platform":["common"]},{"name":"cd","platform":["common"]},{"name":"chmod","platform":["common"]},{"name":"chown","platform":["common"]},{"name":"chsh","platform":["common"]},{"name":"cksum","platform":["common"]},{"name":"convert","platform":["common"]},{"name":"cp","platform":["common"]},{"name":"curl","platform":["common"]},{"name":"cut","platform":["common"]},{"name":"date","platform":["common"]},{"name":"deluser","platform":["common"]},{"name":"df","platform":["common"]},{"name":"diff","platform":["common"]},{"name":"dig","platform":["common"]},{"name":"drush","platform":["common"]},{"name":"echo","platform":["common"]},{"name":"electrum","platform":["common"]},{"name":"env","platform":["common"]},{"name":"exiftool","platform":["common"]},{"name":"fdupes","platform":["common"]},{"name":"ffmpeg","platform":["common"]},{"name":"find","platform":["common"]},{"name":"fswebcam","platform":["common"]},{"name":"gcc","platform":["common"]},{"name":"gem","platform":["common"]},{"name":"gifsicle","platform":["common"]},{"name":"git-add","platform":["common"]},{"name":"git-branch","platform":["common"]},{"name":"git-checkout","platform":["common"]},{"name":"git-clone","platform":["common"]},{"name":"git-commit","platform":["common"]},{"name":"git-diff","platform":["common"]},{"name":"git-init","platform":["common"]},{"name":"git-log","platform":["common"]},{"name":"git-merge","platform":["common"]},{"name":"git-push","platform":["common"]},{"name":"git-remote","platform":["common"]},{"name":"git-stash","platform":["common"]},{"name":"git-status","platform":["common"]},{"name":"git","platform":["common"]},{"name":"gpg","platform":["common"]},{"name":"grep","platform":["common"]},{"name":"gzip","platform":["common"]},{"name":"handbrakecli","platform":["common"]},{"name":"haxelib","platform":["common"]},{"name":"iconv","platform":["common"]},{"name":"ipcs","platform":["common"]},{"name":"kill","platform":["common"]},{"name":"less","platform":["common"]},{"name":"ln","platform":["common"]},{"name":"ls","platform":["common"]},{"name":"lsof","platform":["common"]},{"name":"man","platform":["common"]},{"name":"mkdir","platform":["common"]},{"name":"more","platform":["common"]},{"name":"mount","platform":["common"]},{"name":"mp4box","platform":["common"]},{"name":"mtr","platform":["common"]},{"name":"mv","platform":["common"]},{"name":"mysql","platform":["common"]},{"name":"mysqldump","platform":["common"]},{"name":"nc","platform":["common"]},{"name":"nmap","platform":["common"]},{"name":"node","platform":["common"]},{"name":"nohup","platform":["common"]},{"name":"npm","platform":["common"]},{"name":"passwd","platform":["common"]},{"name":"patch","platform":["common"]},{"name":"pgrep","platform":["common"]},{"name":"php","platform":["common"]},{"name":"ping","platform":["common"]},{"name":"pip","platform":["common"]},{"name":"play","platform":["common"]},{"name":"ps","platform":["common"]},{"name":"psql","platform":["common"]},{"name":"pushd","platform":["common"]},{"name":"pwd","platform":["common"]},{"name":"redis-cli","platform":["common"]},{"name":"rename","platform":["common"]},{"name":"rm","platform":["common"]},{"name":"rmdir","platform":["common"]},{"name":"rsync","platform":["common"]},{"name":"salt-call","platform":["common"]},{"name":"salt-key","platform":["common"]},{"name":"scp","platform":["common"]},{"name":"screen","platform":["common"]},{"name":"sed","platform":["common"]},{"name":"sort","platform":["common"]},{"name":"sox","platform":["common"]},{"name":"split","platform":["common"]},{"name":"srm","platform":["common"]},{"name":"ssh","platform":["common"]},{"name":"sshfs","platform":["common"]},{"name":"sudo","platform":["common"]},{"name":"svn","platform":["common"]},{"name":"tail","platform":["common"]},{"name":"tar","platform":["common"]},{"name":"tcpdump","platform":["common"]},{"name":"tee","platform":["common"]},{"name":"telnet","platform":["common"]},{"name":"time","platform":["common"]},{"name":"tldr","platform":["common"]},{"name":"tmux","platform":["common"]},{"name":"touch","platform":["common"]},{"name":"tr","platform":["common"]},{"name":"traceroute","platform":["common"]},{"name":"tree","platform":["common"]},{"name":"umount","platform":["common"]},{"name":"uname","platform":["common"]},{"name":"unzip","platform":["common"]},{"name":"useradd","platform":["common"]},{"name":"userdel","platform":["common","linux"]},{"name":"usermod","platform":["common"]},{"name":"wc","platform":["common"]},{"name":"wget","platform":["common"]},{"name":"which","platform":["common"]},{"name":"yes","platform":["common"]},{"name":"zfs","platform":["common"]},{"name":"zip","platform":["common"]},{"name":"zpool","platform":["common"]},{"name":"apt-get","platform":["linux"]},{"name":"aptitude","platform":["linux"]},{"name":"base64","platform":["linux"]},{"name":"dpkg","platform":["linux"]},{"name":"du","platform":["linux","osx"]},{"name":"emerge","platform":["linux"]},{"name":"findmnt","platform":["linux"]},{"name":"firewall-cmd","platform":["linux"]},{"name":"free","platform":["linux"]},{"name":"head","platform":["linux","osx"]},{"name":"iostat","platform":["linux"]},{"name":"ip","platform":["linux"]},{"name":"journalctl","platform":["linux"]},{"name":"locate","platform":["linux","osx"]},{"name":"md5sum","platform":["linux"]},{"name":"mdadm","platform":["linux"]},{"name":"netstat","platform":["linux"]},{"name":"pacman","platform":["linux"]},{"name":"sha1sum","platform":["linux"]},{"name":"sha224sum","platform":["linux"]},{"name":"sha256sum","platform":["linux"]},{"name":"sha384sum","platform":["linux"]},{"name":"sha512sum","platform":["linux"]},{"name":"shuf","platform":["linux"]},{"name":"shutdown","platform":["linux","osx"]},{"name":"ss","platform":["linux"]},{"name":"strace","platform":["linux"]},{"name":"systemctl","platform":["linux"]},{"name":"tcpflow","platform":["linux"]},{"name":"wall","platform":["linux"]},{"name":"watch","platform":["linux"]},{"name":"wpa_cli","platform":["linux"]},{"name":"xargs","platform":["linux"]},{"name":"airport","platform":["osx"]},{"name":"brew","platform":["osx"]},{"name":"caffeinate","platform":["osx"]},{"name":"diskutil","platform":["osx"]},{"name":"drutil","platform":["osx"]},{"name":"md5","platform":["osx"]},{"name":"networksetup","platform":["osx"]},{"name":"open","platform":["osx"]},{"name":"pbcopy","platform":["osx"]},{"name":"pbpaste","platform":["osx"]},{"name":"qlmanage","platform":["osx"]},{"name":"route","platform":["osx"]},{"name":"say","platform":["osx"]},{"name":"sw_vers","platform":["osx"]},{"name":"sysctl","platform":["osx"]},{"name":"system_profiler","platform":["osx"]},{"name":"systemsetup","platform":["osx"]},{"name":"wacaw","platform":["osx"]},{"name":"xed","platform":["osx"]},{"name":"xsltproc","platform":["osx"]},{"name":"prctl","platform":["sunos"]},{"name":"prstat","platform":["sunos"]},{"name":"svcadm","platform":["sunos"]},{"name":"svccfg","platform":["sunos"]},{"name":"svcs","platform":["sunos"]}]} \ No newline at end of file diff --git a/scripts/lint-changed.sh b/scripts/lint-changed.sh new file mode 100755 index 000000000..022cee27f --- /dev/null +++ b/scripts/lint-changed.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +MD_FILES=`git diff --cached --name-only | tr " " "\n" | egrep ^.*\.md$` + +# Execute Markdown lint if any markdown files have been changed and added to git +[[ -z "$MD_FILES" ]] || GEM_PATH=.gem .gem/bin/mdl "$MD_FILES" diff --git a/scripts/markdown-style.rb b/scripts/markdown-style.rb new file mode 100644 index 000000000..7416c7d5a --- /dev/null +++ b/scripts/markdown-style.rb @@ -0,0 +1,5 @@ +# This file contains the markdown rules markdownlint will check for +all + +exclude_rule 'MD013' # Lengthy lines (80+ chars) +exclude_rule 'MD038' # Spaces inside code backticks diff --git a/scripts/pre-commit b/scripts/pre-commit index 3869d9028..c5d8e6ee0 100644 --- a/scripts/pre-commit +++ b/scripts/pre-commit @@ -2,3 +2,4 @@ make index git add ./pages/index.json +make lint-changed