| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #!/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
|