#!/bin/env bash # SPDX-License-Identifier: MPL-2.0 # An bloody script for opening text editors from the command line via $EDITOR and # command flags, work in progress and probably abandoned. # shellcheck disable=SC2034 VSCODE_PATH=$(command -v code) # TODO: Add PATH detection for VS Code Desktop+Server/OpenVSCode Server/VSCodium/code-server NANO_PATH=$(command -v nano) VI_PATH=$(command -v vi) # maybe neovim? OPEN_EDITOR_LOCKFILE=$HOME/.dotfiles/config/open-editor if [[ $1 == "" ]]; then echo "open-editor: Want to learn more how to use me? Use the '--help' flag to see the docs." exit fi # Stack Overflow: https://stackoverflow.com/questions/7069682/how-to-get-arguments-with-flags-in-bash#21128172 while test $# -gt 0; do case "$1" in -h|--help) echo "$0 - shortcut to open editors within and from command line" echo "By default, the script will attempt to guess what text editor to use as much" echo "as possible. You can lock with the ~/.dotfiles/config/open-editor file." echo echo "$0 [options] filename" echo " " echo "options:" echo "-h, --help show brief help" echo "-c, --use-code use Visual Studio Code, with the 'wait' flag" echo "-n, --use-nano use GNU Nano" echo "--lockfile Generate a lockfile within your home directory" echo " or edit if found." exit 0 ;; -c|--use-code) shift echo "open-editor: Firing up your editor, please wait..." sleep 3 if test $# -gt 0; then # shellcheck disable=SC2086 code --wait $1 else echo "error: no file specified, aborting..." exit 1 fi shift ;; -n|--use-nano) shift echo "open-editor: Firing up your editor, please wait..." sleep 3 if test $# -gt 0; then # shellcheck disable=SC2086 nano $1 exit fi shift ;; --lockfile) shift if test $# -gt 0; then export OUTPUT=$1 else echo "no output dir specified" exit 1 fi shift ;; -*) echo "open-editor: Unsupported flag, edit the script file to customize." exit 1 ;; esac done if [[ $VSCODE_PATH != "" ]]; then echo "open-editor: Firing up your editor, please wait..." sleep 3 code --wait "$1" exit elif [[ $NANO_PATH != "" ]]; then echo "open-editor: Firing up your editor, please wait..." sleep 3 nano "$1" exit else echo "open-editor: Firing up your editor, please wait..." sleep 3 vi "$1" exit fi