Nick Plekhanov
8 years ago
9 changed files with 321 additions and 2 deletions
@ -0,0 +1,25 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
# Find files with Windows line endings (and convert them to Unix in force mode) |
|||
# |
|||
# Usage: |
|||
# crlf [file] [--force] |
|||
|
|||
local force= |
|||
|
|||
function _crlf_file() { |
|||
grep -q $'\x0D' "$1" && echo "$1" && [ $2 ] && dos2unix "$1" |
|||
} |
|||
|
|||
# Single file |
|||
if [ "$1" != "" ] && [ "$1" != "--force" ]; then |
|||
[ "$2" == "--force" ] && force=1 || force=0 |
|||
_crlf_file $1 $force |
|||
return |
|||
fi |
|||
|
|||
# All files |
|||
[ "$1" == "--force" ] && force=1 || force=0 |
|||
for file in $(find . -type f -not -path "*/.git/*" -not -path "*/node_modules/*" | xargs file | grep ASCII | cut -d: -f1); do |
|||
_crlf_file $file $force |
|||
done |
@ -0,0 +1,55 @@ |
|||
#!/usr/bin/env perl |
|||
|
|||
# Finds duplicate adjacent words. |
|||
# http://matt.might.net/articles/shell-scripts-for-passive-voice-weasel-words-duplicates/ |
|||
|
|||
use strict ; |
|||
|
|||
my $DupCount = 0 ; |
|||
|
|||
if (!@ARGV) { |
|||
print "Usage: dups <file> ...\n" ; |
|||
exit ; |
|||
} |
|||
|
|||
while (1) { |
|||
my $FileName = shift @ARGV ; |
|||
|
|||
# Exit code = number of duplicates found. |
|||
exit $DupCount if (!$FileName) ; |
|||
|
|||
open FILE, $FileName or die $!; |
|||
|
|||
my $LastWord = "" ; |
|||
my $LineNum = 0 ; |
|||
|
|||
while (<FILE>) { |
|||
chomp ; |
|||
|
|||
$LineNum ++ ; |
|||
|
|||
my @words = split (/(\W+)/) ; |
|||
|
|||
foreach my $word (@words) { |
|||
# Skip spaces: |
|||
next if $word =~ /^\s*$/ ; |
|||
|
|||
# Skip punctuation: |
|||
if ($word =~ /^\W+$/) { |
|||
$LastWord = "" ; |
|||
next ; |
|||
} |
|||
|
|||
# Found a dup? |
|||
if (lc($word) eq lc($LastWord)) { |
|||
print "$FileName:$LineNum $word\n" ; |
|||
$DupCount ++ ; |
|||
} # Thanks to Sean Cronin for tip on case. |
|||
|
|||
# Mark this as the last word: |
|||
$LastWord = $word ; |
|||
} |
|||
} |
|||
|
|||
close FILE ; |
|||
} |
@ -0,0 +1,32 @@ |
|||
#!/bin/bash |
|||
|
|||
branches_to_die=$(git branch --no-color --merged origin/master | grep -v '\smaster$') |
|||
echo "Local branches to be deleted:" |
|||
echo "$branches_to_die" |
|||
|
|||
kill_branches () { |
|||
echo $branches_to_die | xargs -n 1 git branch -d |
|||
} |
|||
|
|||
remote_branches_to_die=$(git branch --no-color --remote --merged origin/master | grep -v '\smaster$' | grep -v '\/master$' | grep -v "origin\/HEAD" | grep -v "origin\/master") |
|||
echo "Remote branches to be deleted:" |
|||
echo "$remote_branches_to_die" |
|||
|
|||
kill_remote_branches () { |
|||
# Remove remote branches |
|||
for remote in $remote_branches_to_die |
|||
do |
|||
# branches=`echo "$remote_branches" | grep "$remote/" | sed 's/\(.*\)\/\(.*\)/:\2 /g' | tr -d '\n'` |
|||
git branch -rd "$remote" |
|||
done |
|||
} |
|||
|
|||
echo "" |
|||
echo "Enter Y to confirm" |
|||
read -p "> " confirm |
|||
|
|||
[[ $confirm == "Y" ]] && kill_branches && kill_remote_branches |
|||
|
|||
echo "" |
|||
echo "Pruning all remotes" |
|||
git remote | xargs -n 1 git remote prune |
@ -0,0 +1,24 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
# Print nyan cat |
|||
# https://github.com/steckel/Git-Nyan-Graph/blob/master/nyan.sh |
|||
# If you want big animated version: `telnet miku.acm.uiuc.edu` |
|||
|
|||
RED="$(tput setaf 1)" |
|||
GREEN="$(tput setaf 2)" |
|||
YELLOW="$(tput setaf 3)" |
|||
CYAN="$(tput setaf 6)" |
|||
WHITE="$(tput setaf 7)" |
|||
BOLD="$(tput bold)" |
|||
NOCOLOR="$(tput sgr0)" |
|||
|
|||
echo |
|||
echo -en $RED'-_-_-_-_-_-_-_' |
|||
echo -e $NOCOLOR$BOLD$WHITE',------,'$NOCOLOR |
|||
echo -en $YELLOW$WHIT'_-_-_-_-_-_-_-' |
|||
echo -e $NOCOLOR$BOLD$WHITE'| /\_/\\'$NOCOLOR |
|||
echo -en $GREEN'-_-_-_-_-_-_-' |
|||
echo -e $NOCOLOR$BOLD$WHITE'~|__( ^ .^)'$NOCOLOR |
|||
echo -en $CYAN'-_-_-_-_-_-_-' |
|||
echo -e $NOCOLOR$BOLD$WHITE'"" ""'$NOCOLOR |
|||
echo |
@ -0,0 +1,68 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
# Abuse of the passive voice |
|||
# http://matt.might.net/articles/shell-scripts-for-passive-voice-weasel-words-duplicates/ |
|||
|
|||
irregulars="awoken|\ |
|||
been|born|beat|\ |
|||
become|begun|bent|\ |
|||
beset|bet|bid|\ |
|||
bidden|bound|bitten|\ |
|||
bled|blown|broken|\ |
|||
bred|brought|broadcast|\ |
|||
built|burnt|burst|\ |
|||
bought|cast|caught|\ |
|||
chosen|clung|come|\ |
|||
cost|crept|cut|\ |
|||
dealt|dug|dived|\ |
|||
done|drawn|dreamt|\ |
|||
driven|drunk|eaten|fallen|\ |
|||
fed|felt|fought|found|\ |
|||
fit|fled|flung|flown|\ |
|||
forbidden|forgotten|\ |
|||
foregone|forgiven|\ |
|||
forsaken|frozen|\ |
|||
gotten|given|gone|\ |
|||
ground|grown|hung|\ |
|||
heard|hidden|hit|\ |
|||
held|hurt|kept|knelt|\ |
|||
knit|known|laid|led|\ |
|||
leapt|learnt|left|\ |
|||
lent|let|lain|lighted|\ |
|||
lost|made|meant|met|\ |
|||
misspelt|mistaken|mown|\ |
|||
overcome|overdone|overtaken|\ |
|||
overthrown|paid|pled|proven|\ |
|||
put|quit|read|rid|ridden|\ |
|||
rung|risen|run|sawn|said|\ |
|||
seen|sought|sold|sent|\ |
|||
set|sewn|shaken|shaven|\ |
|||
shorn|shed|shone|shod|\ |
|||
shot|shown|shrunk|shut|\ |
|||
sung|sunk|sat|slept|\ |
|||
slain|slid|slung|slit|\ |
|||
smitten|sown|spoken|sped|\ |
|||
spent|spilt|spun|spit|\ |
|||
split|spread|sprung|stood|\ |
|||
stolen|stuck|stung|stunk|\ |
|||
stridden|struck|strung|\ |
|||
striven|sworn|swept|\ |
|||
swollen|swum|swung|taken|\ |
|||
taught|torn|told|thought|\ |
|||
thrived|thrown|thrust|\ |
|||
trodden|understood|upheld|\ |
|||
upset|woken|worn|woven|\ |
|||
wed|wept|wound|won|\ |
|||
withheld|withstood|wrung|\ |
|||
written" |
|||
|
|||
if [ "$1" = "" ]; then |
|||
echo "Usage: `basename $0` <file> ..." |
|||
exit |
|||
fi |
|||
|
|||
egrep -n -i --color \ |
|||
"\\b(am|are|were|being|is|been|was|be)\ |
|||
\\b[ ]*(\w+ed|($irregulars))\\b" $* |
|||
|
|||
exit $? |
@ -0,0 +1,27 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
# http://matt.might.net/articles/shell-scripts-for-passive-voice-weasel-words-duplicates/ |
|||
|
|||
# Common stuff |
|||
CYAN="$(tput setaf 6)" |
|||
UNDERLINE="$(tput sgr 0 1)" |
|||
NOCOLOR="$(tput sgr0)" |
|||
function header() { |
|||
echo -e "$UNDERLINE$CYAN$1$NOCOLOR" |
|||
} |
|||
|
|||
if [ "$1" = "" ]; then |
|||
echo "Usage: `basename $0` <file> ..." |
|||
exit |
|||
fi |
|||
|
|||
header "Weasel words" |
|||
weasel $1 |
|||
echo |
|||
|
|||
header "Passive voice" |
|||
passive $1 |
|||
echo |
|||
|
|||
header "Duplicates" |
|||
dups $1 |
@ -0,0 +1,10 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
# Print public SSH key to clipboard. Generate it if necessary |
|||
|
|||
file="$HOME/.ssh/id_rsa.pub" |
|||
if [ ! -f "$file" ]; then |
|||
ssh-keygen -t rsa |
|||
fi |
|||
|
|||
cat "$file" |
@ -0,0 +1,41 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
# Weasel words |
|||
# http://matt.might.net/articles/shell-scripts-for-passive-voice-weasel-words-duplicates/ |
|||
|
|||
weasels="many|various|very|fairly|several|extremely\ |
|||
|exceedingly|quite|remarkably|few|surprisingly\ |
|||
|mostly|largely|huge|tiny|((are|is) a number)\ |
|||
|excellent|interestingly|significantly\ |
|||
|substantially|clearly|vast|relatively|completely" |
|||
|
|||
wordfile="" |
|||
|
|||
# Check for an alternate weasel file |
|||
if [ -f $HOME/etc/words/weasels ]; then |
|||
wordfile="$HOME/etc/words/weasels" |
|||
fi |
|||
|
|||
if [ -f $WORDSDIR/weasels ]; then |
|||
wordfile="$WORDSDIR/weasels" |
|||
fi |
|||
|
|||
if [ -f words/weasels ]; then |
|||
wordfile="words/weasels" |
|||
fi |
|||
|
|||
if [ ! "$wordfile" = "" ]; then |
|||
weasels="xyzabc123"; |
|||
for w in `cat $wordfile`; do |
|||
weasels="$weasels|$w" |
|||
done |
|||
fi |
|||
|
|||
if [ "$1" = "" ]; then |
|||
echo "Usage: `basename $0` <file> ..." |
|||
exit |
|||
fi |
|||
|
|||
egrep -i -n --color "\\b($weasels)\\b" $* |
|||
|
|||
exit $? |
Loading…
Reference in new issue