diff --git a/Readme.rst b/Readme.rst index 9189200..3582010 100644 --- a/Readme.rst +++ b/Readme.rst @@ -8,7 +8,7 @@ These should be placed inside of the ``~/.nano/`` directory. Alternatively:: git clone git@github.com:scopatz/nanorc.git ~/.nano - + *Note - if you have any issues, alternatively use:: git clone https://github.com/scopatz/nanorc.git ~/.nano @@ -24,7 +24,7 @@ You can also append the contents of ``~/.nano/nanorc`` into your ``~/.nanorc`` to include all languages:: cat ~/.nano/nanorc >> ~/.nanorc - + Finally, you can run an automatic installer using the following code:: $ curl https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh | sh @@ -32,3 +32,8 @@ Finally, you can run an automatic installer using the following code:: or alternatively:: $ wget https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh -O- | sh + +*Note - + some syntax definitions which exist in Nano upstream may be preferable to the ones provided by this package. + The install.sh script may be run with ``-l`` or ``--lite`` to insert the included syntax definitions from this package + with lower precedence than the ones provided by the standard package. diff --git a/install.sh b/install.sh index 71091ac..6cd3497 100755 --- a/install.sh +++ b/install.sh @@ -1,27 +1,52 @@ #!/bin/sh -wget -O /tmp/nanorc.zip https://github.com/scopatz/nanorc/archive/master.zip -if [ ! -d ~/.nano/ ] -then +function _fetch_sources() { + wget -O /tmp/nanorc.zip https://github.com/scopatz/nanorc/archive/master.zip + if [ ! -d ~/.nano/ ] + then mkdir ~/.nano/ -fi + fi -cd ~/.nano/ + cd ~/.nano/ -unzip -o "/tmp/nanorc.zip" -mv nanorc-master/* ./ -rm -rf nanorc-master -rm /tmp/nanorc.zip + unzip -o "/tmp/nanorc.zip" + mv nanorc-master/* ./ + rm -rf nanorc-master + rm /tmp/nanorc.zip +} -if [ ! -f ~/.nanorc ] -then - touch ~/.nanorc -fi +function _update_nanorc() { + if [ ! -f ~/.nanorc ] + then + touch ~/.nanorc + fi + + # add all includes from ~/.nano/nanorc if they're not already there + while read inc; do + if ! grep -q "$inc" "${NANORC_FILE}"; then + echo "$inc" >> $NANORC_FILE + fi + done < ~/.nano/nanorc +} + +function _update_nanorc_lite() { + sed -i '/include "\/usr\/share\/nano\/\*\.nanorc"/i include "~\/.nano\/*.nanorc"' "${NANORC_FILE}" +} -# add all includes from ~/.nano/nanorc if they're not already there NANORC_FILE=~/.nanorc -while read inc; do - if ! grep -q "$inc" "${NANORC_FILE}"; then - echo "$inc" >> $NANORC_FILE - fi -done < ~/.nano/nanorc + +case "$1" in + -l|--lite) + UPDATE_LITE=1;; + -h|--help) + echo "Install script for nanorc syntax highlights" + echo "Call with -l or --lite to update .nanorc with secondary precedence to existing .nanorc includes" + ;; +esac + +_fetch_sources; +if [[ $UPDATE_LITE ]]; then + _update_nanorc_lite; +else + _update_nanorc; +fi