Skip to content

Instantly share code, notes, and snippets.

@brianlan
Forked from BasPH/black_selection.sh
Created October 24, 2019 02:03
Show Gist options
  • Save brianlan/e1894ae949073e3599f3c8a483bebf2e to your computer and use it in GitHub Desktop.
Save brianlan/e1894ae949073e3599f3c8a483bebf2e 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