#!/usr/bin/env bash # open_scite.sh # Usage: # ./open_scite.sh /path/to/file [line_number] [column_number] set -euo pipefail if [[ $# -lt 1 || $# -gt 3 ]]; then echo "Usage: $0 [line_number] [column_number]" exit 1 fi FILE_LINUX="$1" 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