scripts: initial implementation of elevate.sh
This commit is contained in:
parent
480620e192
commit
741385cc64
1 changed files with 41 additions and 0 deletions
41
scripts/elevate.sh
Executable file
41
scripts/elevate.sh
Executable file
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/bash
|
||||
|
||||
# error if 'pwsh' not in path
|
||||
if [ ! which pwsh > /dev/null 2>&1 ]; then
|
||||
echo "no 'pwsh' in \$PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# set mode (linux/dos)
|
||||
if [[ "$1" == "-l" ]]; then
|
||||
mode='linux'
|
||||
shift
|
||||
elif [[ "$1" == "-w" ]]; then
|
||||
mode='dos'
|
||||
shift
|
||||
fi
|
||||
|
||||
# error if no target
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo "elevate: no target"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
# consume target based on mode
|
||||
if [[ "$mode" == "linux" ]]; then
|
||||
target='wsl.exe'
|
||||
elif [[ "$mode" == "dos" ]]; then
|
||||
target="$1"
|
||||
shift
|
||||
else
|
||||
echo "elevate: no mode set; use '-l' or '-w'"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
arglist=''
|
||||
if [ "$#" -ne 0 ]; then
|
||||
arglist="-ArgumentList '$@'"
|
||||
fi
|
||||
|
||||
pwsh -C "Start-Process -Verb runas $target $arglist"
|
||||
|
Loading…
Reference in a new issue