Convert FreeRDP command to array format.

This commit is contained in:
Rohan Barar 2024-07-01 21:36:02 +10:00
parent 782c364f4d
commit 07d726f964

View File

@ -4,6 +4,7 @@ if [ ! -f "$HOME/.config/winapps/winapps.conf" ] && [ ! -f "$HOME/.winapps" ]; t
echo "You need to create a ~/.config/winapps/winapps.conf configuration. Exiting..."
exit
fi
DIR="$(dirname "$(readlink -f "$0")")"
RUN="$(date)-$RANDOM"
@ -72,7 +73,6 @@ if [ -z "$RDP_IP" ]; then
fi
RDP_IP=$(virsh net-dhcp-leases default | grep RDPWindows | awk '{print $5}')
RDP_IP=${RDP_IP%%\/*}
fi
dprint "1:$1"
@ -86,18 +86,23 @@ if [ "$MULTIMON" = "true" ]; then
MULTI_FLAG="/multimon"
fi
# Append additional flags or parameters to FreeRDP
if [[ -n "$RDP_FLAGS" ]]; then
FREERDP_COMMAND="$FREERDP_COMMAND $RDP_FLAGS"
fi
if [ "$1" = "windows" ]; then
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +dynamic-resolution +auto-reconnect +home-drive /wm-class:"Microsoft Windows" /v:"$RDP_IP" 1>/dev/null 2>&1 &
dprint "WINDOWS"
COMMAND=("${FREERDP_COMMAND}" "/d:${RDP_DOMAIN}" "/u:${RDP_USER}" "/p:${RDP_PASS}" "/scale:${RDP_SCALE}" "+dynamic-resolution" "+auto-reconnect" "+home-drive" "/wm-class:\"Microsoft Windows\"" "/v:${RDP_IP}")
"${COMMAND[@]}" 1>/dev/null 2>&1 &
elif [ "$1" = "check" ]; then
dprint "CHECK"
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +home-drive -wallpaper +dynamic-resolution $MULTI_FLAG /app:program:"explorer.exe" /v:"$RDP_IP"
COMMAND=("${FREERDP_COMMAND}" "/d:${RDP_DOMAIN}" "/u:${RDP_USER}" "/p:${RDP_PASS}" "/scale:${RDP_SCALE}" "+auto-reconnect" "+home-drive" "-wallpaper" "+dynamic-resolution" "${MULTI_FLAG}" "/app:program:explorer.exe" "/v:${RDP_IP}")
"${COMMAND[@]}"
elif [ "$1" = "manual" ]; then
dprint "MANUAL:$2"
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +home-drive +dynamic-resolution $MULTI_FLAG /app:program:"$2" /v:"$RDP_IP" 1>/dev/null 2>&1 &
dprint "MANUAL:${2}"
COMMAND=("${FREERDP_COMMAND}" "/d:${RDP_DOMAIN}" "/u:${RDP_USER}" "/p:${RDP_PASS}" "/scale:${RDP_SCALE}" "+auto-reconnect" "+home-drive" "+dynamic-resolution" "${MULTI_FLAG}" "/app:program:${2}" "/v:${RDP_IP}")
"${COMMAND[@]}" 1>/dev/null 2>&1 &
elif [ "$1" != "install" ]; then
dprint "DIR:${DIR}"
if [ -e "${DIR}/../apps/$1/info" ]; then
@ -121,9 +126,11 @@ elif [ "$1" != "install" ]; then
FILE=$(echo "$2" | sed 's|'"$HOME"'|\\\\tsclient\\home|;s|/|\\|g;s|\\|\\\\|g')
dprint "FILE:${FILE}"
# shellcheck disable=SC2140
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +clipboard +home-drive -wallpaper +dynamic-resolution $MULTI_FLAG /wm-class:"$FULL_NAME" /app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:"$FULL_NAME",cmd:"\"$FILE\"" /v:"$RDP_IP" 1>/dev/null 2>&1 &
COMMAND=("${FREERDP_COMMAND}" "/d:${RDP_DOMAIN}" "/u:${RDP_USER}" "/p:${RDP_PASS}" "/scale:${RDP_SCALE}" "+auto-reconnect" "+clipboard" "+home-drive" "-wallpaper" "+dynamic-resolution" "${MULTI_FLAG}" "/wm-class:${FULL_NAME}" "/app:program:${WIN_EXECUTABLE},icon:${ICON},name:${FULL_NAME},cmd:\"${FILE}\"" "/v:${RDP_IP}")
"${COMMAND[@]}" 1>/dev/null 2>&1 &
else
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +clipboard +home-drive -wallpaper +dynamic-resolution $MULTI_FLAG /wm-class:"$FULL_NAME" /app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:"$FULL_NAME" /v:"$RDP_IP" 1>/dev/null 2>&1 &
COMMAND=("${FREERDP_COMMAND}" "/d:${RDP_DOMAIN}" "/u:${RDP_USER}" "/p:${RDP_PASS}" "/scale:${RDP_SCALE}" "+auto-reconnect" "+clipboard" "+home-drive" "-wallpaper" "+dynamic-resolution" "${MULTI_FLAG}" "/wm-class:${FULL_NAME}" "/app:program:${WIN_EXECUTABLE},icon:${ICON},name:${FULL_NAME}" "/v:${RDP_IP}")
"${COMMAND[@]}" 1>/dev/null 2>&1 &
fi
fi