Skip to content

Instantly share code, notes, and snippets.

@tockards
Forked from BasPH/black_selection.sh
Created January 30, 2020 11:41
Show Gist options
  • Save tockards/1fd56c6389f7304164fa03453d8fecdf to your computer and use it in GitHub Desktop.
Save tockards/1fd56c6389f7304164fa03453d8fecdf to your computer and use it in GitHub Desktop.
Black on selection
#!/usr/bin/env bash
set -x
black=$1
input_file=$2
start_line=$3
end_line=$4
# Read selected lines and write to tmpfile
selection=$(sed -n "$start_line, $end_line p; $(($end_line+1)) q" < $input_file)
tmpfile=$(mktemp)
echo "$selection" > "$tmpfile"
# Apply Black formatting to tmpfile
$black $tmpfile
# Delete original lines from file
sed -i "" "$start_line,$end_line d" $input_file
# And insert newly formatted lines
sed -i "" "$(($start_line-1)) r $tmpfile" $input_file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment