Fixed code block formatting

Fixed code block formatting

I've fixed the code block formatting so that shell code with escaped new lines format OK.

In other words, breaking up long line into multiple line commands using backspace caused formatting issues.. Now it doesn't.

Here is an example, a script called apt2pup:

#!/bin/bash

if [ "$1" = '-h' ] || [ "$1" = '-help' ] || [ "$1" = '--help' ];then

  echo
  echo 'This script gets the repo URLs listed in /etc/apt/sources.list and '
  echo '/etc/apt/sources.list.d/<name>.list then passes them to `ppa2pup`, '
  echo 'which creates a Puppy-compatible repo from the repo URLs it receives '
  echo '(if possible).'
  echo
  echo 'More info:'
  echo
  echo '/etc/apt/sources.list usually contains lines like:'
  echo
  echo '    deb     https://deb.nodesource.com/node_8.x      trusty       main'
  echo '    deb     http://apt.postgresql.org/pub/repos/apt  trusty-pgdg  main'
  echo '    deb-src http://apt.postgresql.org/pub/repos/apt  trusty-pgdg  main'
  echo
  echo 'The first bit refers to package type (regular or source), the second'
  echo 'is the URL where the packages are, the third is OS version, and '
  echo 'the last is the "repo stream" - often main, contrib, or non-free.'
  echo
  echo 'This script will ignore "deb-src" entries, and parse the others'
  exit 0

fi

if [ ! -f /etc/apt/sources.list ] && [ ! -d /etc/apt/sources.list.d/ ];then
  [ ! -f /etc/apt/sources.list    ] && echo 'File /etc/apt/sources.list     not found'
  [ ! -d /etc/apt/sources.list.d/ ] && echo 'Dir  /etc/apt/sources.list.d/  not found'
  echo 'Exiting'
  exit 1
fi

# search inside /etc/apt/sources.list /etc/apt/sources.list.d/*.list
# ...look for lines starting with 'deb ', ignore others
# ...(use grep -h, to remove the preppended filenames if grepping multiple files)
# ...remove any arch stuff from the entries, ppa2pup will handle that,
# ...convert spaces to | chars, so we can process each line as a whole later
apt_sources_list="$(grep -h '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null \
  | sed \
    -e "s/^deb //g" \
    -e "s/^tor+//g" \
    -e 's/\[arch=[a-z,0-9].*\] //g' \
    -e 's/ /|/g'\
)"

echo "Repos to process:"
echo
echo "${apt_sources_list//|/ }"


# for each repo in $apt_sources_list, use `ppa2pup` to install the repo
for line in $apt_sources_list
do
  [ "$line" = "" ] && continue
  [ "$line" = "
" ] && continue
  echo
  echo "Processing:  ${line//|/ }"
  echo

  # ask user to update repo
  read -r -N 1 -p "Update repo from '$(echo ${line//|/ } | cut -f1 -d' ')'? [y/n] " ANSWER

  if [ "$ANSWER" = 'y' ] || [ "$ANSWER" = 'Y' ];then
    echo
    ppa2pup ${line//|/ }
    retval=$?
  fi
  echo
done

exit $retval