#!/bin/bash # Accepts no arguments # Returns git-add'ed files as a list of filenames separated by a newline character cachedFiles() { git diff --cached --name-only --diff-filter=ACM "*.js" "*.jsx" "*.ts" "*.tsx" "*.md" "*.css" } # Accepts a single argument which is the name of a file tracked by git # Returns a string which is the content of the file as stored in the git index staged() { git show :"$1" } # Accepts a single string argument made of multiple file names separated by a newline # Returns an array of files that prettier wants to lint ugly() { local acc="" local IFS=$'\n' for jsfile in $1; do diff <(staged "$jsfile") <(staged "$jsfile" | "$(npm bin)/prettier" --stdin-filepath "$jsfile") >/dev/null || acc="$jsfile"$'\n'"$acc" done echo "$acc" } noisy() { local acc=() for jsfile in "$@"; do if [ "$(git diff --cached "$jsfile" | grep '^+.*console.log' -c)" -gt '0' ] ; then acc+=("jsfile") fi done echo ${acc[@]} }