#!/usr/bin/env bash # open_scite.sh # Usage: # ./open_scite.sh [/path/to/file] [line_number] [column_number] # If no path is provided, a new file named new_file.md is opened in the # current directory. set -euo pipefail if [[ $# -gt 3 ]]; then echo "Usage: $0 [linux_path_to_file] [line_number] [column_number]" exit 1 fi DEFAULT_FILE="$PWD/new_file.md" FILE_LINUX="${1:-$DEFAULT_FILE}" LINE="${2:-}" COL="${3:-}" if ! command -v wslpath >/dev/null 2>&1; then echo "Error: wslpath not found." >&2 exit 1 fi # Convert Linux path to Windows path FILE_WIN="$(wslpath -w "$FILE_LINUX")" # Build goto arg if line/col provided GOTO_ARG="" if [[ -n "$LINE" ]]; then if ! [[ "$LINE" =~ ^[0-9]+$ ]]; then echo "Error: line number must be numeric." >&2 exit 1 fi if [[ -n "$COL" && ! "$COL" =~ ^[0-9]+$ ]]; then echo "Error: column number must be numeric." >&2 exit 1 fi COL="${COL:-1}" # default col=1 if only line given GOTO_ARG="-goto:$LINE,$COL" fi # Debug info # echo "Opening in SciTE:" # echo " FILE_WIN=$FILE_WIN" # [[ -n "$GOTO_ARG" ]] && echo " GOTO_ARG=$GOTO_ARG" # Paths POWERSHELL="/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe" SCITE="C:\\apps\\scite\\SciTE.exe" # Launch SciTE if [[ -n "$GOTO_ARG" ]]; then "$POWERSHELL" -NoProfile -Command \ "Start-Process -FilePath '$SCITE' -ArgumentList \"$FILE_WIN\",\"$GOTO_ARG\"" else "$POWERSHELL" -NoProfile -Command \ "Start-Process -FilePath '$SCITE' -ArgumentList \"$FILE_WIN\"" fi