mirror of
https://github.com/winapps-org/winapps.git
synced 2025-06-02 13:17:19 +02:00
finish adding spellcheck
This commit is contained in:
parent
7d8ae3ae3e
commit
8f259464a5
@ -47,7 +47,7 @@ repos:
|
||||
additional_dependencies:
|
||||
- setuptools
|
||||
|
||||
# - repo: https://github.com/shellcheck-py/shellcheck-py
|
||||
# rev: v0.10.0.1
|
||||
# hooks:
|
||||
# - id: shellcheck
|
||||
- repo: https://github.com/shellcheck-py/shellcheck-py
|
||||
rev: v0.10.0.1
|
||||
hooks:
|
||||
- id: shellcheck
|
||||
|
51
bin/winapps
51
bin/winapps
@ -23,7 +23,7 @@ fi
|
||||
|
||||
function dprint() {
|
||||
if [ "$DEBUG" = "true" ]; then
|
||||
echo "[$RUN] ${1}" >>"$HOME/.local/share/winapps/winapps.log"
|
||||
echo "[$RUN] $1" >>"$HOME/.local/share/winapps/winapps.log"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -59,13 +59,13 @@ else
|
||||
fi
|
||||
|
||||
if [ -z "$RDP_IP" ]; then
|
||||
if [ ! "$(groups | grep -v libvirt)" ]; then
|
||||
if groups | grep -vq libvirt; then
|
||||
echo "You are not a member of the libvirt group. Run the below then reboot."
|
||||
echo ' sudo usermod -a -G libvirt $(whoami)'
|
||||
echo ' sudo usermod -a -G kvm $(whoami)'
|
||||
echo " sudo usermod -a -G libvirt $(whoami)"
|
||||
echo " sudo usermod -a -G kvm $(whoami)"
|
||||
exit
|
||||
fi
|
||||
if [ ! "$(virsh list | grep -v RDPWindows)" ]; then
|
||||
if virsh list | grep -vq RDPWindows; then
|
||||
echo "RDPWindows is not running, run:"
|
||||
echo " virsh start RDPWindows"
|
||||
exit
|
||||
@ -75,39 +75,39 @@ if [ -z "$RDP_IP" ]; then
|
||||
|
||||
fi
|
||||
|
||||
dprint "1:${1}"
|
||||
dprint "1:$1"
|
||||
dprint "2:$2"
|
||||
# this is just for debug logging anyways
|
||||
# shellcheck disable=SC2145
|
||||
dprint "@:${@}"
|
||||
|
||||
MULTI_FLAG="+span"
|
||||
if [ "${MULTIMON}" = "true" ]; then
|
||||
if [ "$MULTIMON" = "true" ]; then
|
||||
MULTI_FLAG="/multimon"
|
||||
fi
|
||||
|
||||
if [ "${1}" = "windows" ]; then
|
||||
$FREERDP_COMMAND $RDP_FLAGS /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 &
|
||||
elif [ "${1}" = "check" ]; then
|
||||
if [ "$1" = "windows" ]; then
|
||||
$FREERDP_COMMAND "$RDP_FLAGS" /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 &
|
||||
elif [ "$1" = "check" ]; then
|
||||
dprint "CHECK"
|
||||
$FREERDP_COMMAND $RDP_FLAGS /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
|
||||
elif [ "${1}" = "manual" ]; then
|
||||
$FREERDP_COMMAND "$RDP_FLAGS" /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"
|
||||
elif [ "$1" = "manual" ]; then
|
||||
dprint "MANUAL:$2"
|
||||
$FREERDP_COMMAND $RDP_FLAGS /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 &
|
||||
elif [ "${1}" != "install" ]; then
|
||||
$FREERDP_COMMAND "$RDP_FLAGS" /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 &
|
||||
elif [ "$1" != "install" ]; then
|
||||
dprint "DIR:${DIR}"
|
||||
if [ -e "${DIR}/../apps/${1}/info" ]; then
|
||||
if [ -e "${DIR}/../apps/$1/info" ]; then
|
||||
# shellcheck disable=SC1090
|
||||
. "${DIR}/../apps/${1}/info"
|
||||
ICON="${DIR}/../apps/${1}/icon.svg"
|
||||
elif [ -e "$HOME/.local/share/winapps/apps/${1}/info" ]; then
|
||||
. "${DIR}/../apps/$1/info"
|
||||
ICON="${DIR}/../apps/$1/icon.svg"
|
||||
elif [ -e "$HOME/.local/share/winapps/apps/$1/info" ]; then
|
||||
# shellcheck disable=SC1090
|
||||
. "$HOME/.local/share/winapps/apps/${1}/info"
|
||||
ICON="$HOME/.local/share/winapps/apps/${1}/icon.svg"
|
||||
elif [ -e "/usr/local/share/winapps/apps/${1}/info" ]; then
|
||||
. "$HOME/.local/share/winapps/apps/$1/info"
|
||||
ICON="$HOME/.local/share/winapps/apps/$1/icon.svg"
|
||||
elif [ -e "/usr/local/share/winapps/apps/$1/info" ]; then
|
||||
# shellcheck disable=SC1090
|
||||
. "/usr/local/share/winapps/apps/${1}/info"
|
||||
ICON="/usr/local/share/winapps/apps/${1}/icon.svg"
|
||||
. "/usr/local/share/winapps/apps/$1/info"
|
||||
ICON="/usr/local/share/winapps/apps/$1/icon.svg"
|
||||
else
|
||||
echo "You need to run 'installer.sh' first."
|
||||
exit 1
|
||||
@ -116,9 +116,10 @@ elif [ "${1}" != "install" ]; then
|
||||
dprint "HOME:$HOME"
|
||||
FILE=$(echo "$2" | sed 's|'"$HOME"'|\\\\tsclient\\home|;s|/|\\|g;s|\\|\\\\|g')
|
||||
dprint "FILE:${FILE}"
|
||||
$FREERDP_COMMAND $RDP_FLAGS /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 &
|
||||
# shellcheck disable=SC2140
|
||||
$FREERDP_COMMAND "$RDP_FLAGS" /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 &
|
||||
else
|
||||
$FREERDP_COMMAND $RDP_FLAGS /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 &
|
||||
$FREERDP_COMMAND "$RDP_FLAGS" /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 &
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -26,6 +26,8 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
# shellcheck disable=all
|
||||
|
||||
# store the current set options
|
||||
OLD_SET=$-
|
||||
set -e
|
||||
|
94
installer.sh
94
installer.sh
@ -42,14 +42,18 @@ function waFindInstalled() {
|
||||
rm -f "$HOME/.local/share/winapps/installed"
|
||||
rm -f "$HOME/.local/share/winapps/detected"
|
||||
cp "$DIR/install/ExtractPrograms.ps1" "$HOME/.local/share/winapps/ExtractPrograms.ps1"
|
||||
# FIXME
|
||||
# shellcheck disable=SC2066
|
||||
for F in "$DIR/apps"; do
|
||||
[[ -e "$F" ]] || break
|
||||
. "$DIR/apps/${F}/info"
|
||||
echo "IF EXIST \"${WIN_EXECUTABLE}\" ECHO ${F} >> \\\\tsclient\\home\\.local\\share\\winapps\\installed.tmp" >>"$HOME/.local/share/winapps/installed.bat"
|
||||
# shellcheck disable=SC1090
|
||||
. "$DIR/apps/$F/info"
|
||||
printf "IF EXIST \"%s\" ECHO %s >> \\\\tsclient\\home\\.local\\share\\winapps\\installed.tmp" "$WIN_EXECUTABLE" "$F" >>"$HOME/.local/share/winapps/installed.bat"
|
||||
done
|
||||
echo "powershell.exe -ExecutionPolicy Bypass -File \\\\tsclient\\home\\.local\\share\\winapps\\ExtractPrograms.ps1 > \\\\tsclient\home\\.local\\share\\winapps\\detected" >>"$HOME/.local/share/winapps/installed.bat"
|
||||
echo "RENAME \\\\tsclient\\home\\.local\\share\\winapps\\installed.tmp installed" >>"$HOME/.local/share/winapps/installed.bat"
|
||||
$FREERDP_COMMAND /d:"${RDP_DOMAIN}" /u:"${RDP_USER}" /p:"${RDP_PASS}" +auto-reconnect +home-drive -wallpaper +span /app:program:"C:\Windows\System32\cmd.exe",cmd:"/C \\\\tsclient\\home\\.local\\share\\winapps\\installed.bat" /v:${RDP_IP} 1>/dev/null 2>&1 &
|
||||
printf "powershell.exe -ExecutionPolicy Bypass -File \\\\tsclient\\home\\.local\\share\\winapps\\ExtractPrograms.ps1 > \\\\tsclient\home\\.local\\share\\winapps\\detected" >>"$HOME/.local/share/winapps/installed.bat"
|
||||
printf "RENAME \\\\tsclient\\home\\.local\\share\\winapps\\installed.tmp installed" >>"$HOME/.local/share/winapps/installed.bat"
|
||||
# shellcheck disable=SC2140
|
||||
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" +auto-reconnect +home-drive -wallpaper +span /app:program:"C:\Windows\System32\cmd.exe",cmd:"/C \\\\tsclient\\home\\.local\\share\\winapps\\installed.bat" /v:"$RDP_IP" 1>/dev/null 2>&1 &
|
||||
COUNT=0
|
||||
while [ ! -f "$HOME/.local/share/winapps/installed" ]; do
|
||||
sleep 5
|
||||
@ -71,7 +75,7 @@ function waFindInstalled() {
|
||||
done
|
||||
if [ $MAKEDEMO = 1 ]; then
|
||||
rm -rf /tmp/winapps_demo
|
||||
cp -a "$HOME/.local/share/winapps /tmp/winapps_demo"
|
||||
cp -a "$HOME/.local/share/winapps" /tmp/winapps_demo
|
||||
exit
|
||||
fi
|
||||
else
|
||||
@ -83,29 +87,29 @@ function waFindInstalled() {
|
||||
}
|
||||
|
||||
function waConfigureApp() {
|
||||
if [ -z "${ICON}" ]; then
|
||||
ICON=$SYS_PATH/apps/${1}/icon.${2}
|
||||
if [ -z "$ICON" ]; then
|
||||
ICON=$SYS_PATH/apps/$1/icon.$2
|
||||
fi
|
||||
|
||||
. "$SYS_PATH/apps/${1}/info"
|
||||
# shellcheck disable=SC1090
|
||||
. "$SYS_PATH/apps/$1/info"
|
||||
echo -n " Configuring $NAME..."
|
||||
if [ $USEDEMO != 1 ]; then
|
||||
$SUDO rm -f "$APP_PATH/${1}.desktop"
|
||||
$SUDO rm -f "$APP_PATH/$1.desktop"
|
||||
echo "[Desktop Entry]
|
||||
Name=$NAME
|
||||
Exec=$BIN_PATH/winapps ${1} %F
|
||||
Exec=$BIN_PATH/winapps $1 %F
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=$ICON
|
||||
StartupWMClass=${FULL_NAME}
|
||||
Comment=${FULL_NAME}
|
||||
Categories=${CATEGORIES}
|
||||
MimeType=${MIME_TYPES}
|
||||
" | $SUDO tee "$APP_PATH/${1}.desktop" >/dev/null
|
||||
$SUDO rm -f "$BIN_PATH/${1}"
|
||||
echo "#!/usr/bin/env bash $BIN_PATH/winapps ${1} $*
|
||||
" | $SUDO tee "$BIN_PATH/${1}" >/dev/null
|
||||
$SUDO chmod a+x "$BIN_PATH/${1}"
|
||||
StartupWMClass=$FULL_NAME
|
||||
Comment=$FULL_NAME
|
||||
Categories=$CATEGORIES
|
||||
MimeType=$MIME_TYPES
|
||||
" | $SUDO tee "$APP_PATH/$1.desktop" >/dev/null
|
||||
$SUDO rm -f "$BIN_PATH/$1"
|
||||
echo "#!/usr/bin/env bash $BIN_PATH/winapps $1 $*
|
||||
" | $SUDO tee "$BIN_PATH/$1" >/dev/null
|
||||
$SUDO chmod a+x "$BIN_PATH/$1"
|
||||
fi
|
||||
echo " Finished."
|
||||
|
||||
@ -114,21 +118,24 @@ MimeType=${MIME_TYPES}
|
||||
|
||||
function waConfigureApps() {
|
||||
APPS=()
|
||||
for F in $(cat "$HOME/.local/share/winapps/installed" | sed 's/\r/\n/g'); do
|
||||
. "$DIR/apps/${F}/info"
|
||||
APPS+=("${FULL_NAME} (${F})")
|
||||
while IFS= read -r F; do
|
||||
# shellcheck disable=SC1090
|
||||
. "$DIR/apps/$F/info"
|
||||
APPS+=("$FULL_NAME ($F)")
|
||||
INSTALLED_EXES+=("$(echo "${WIN_EXECUTABLE##*\\}" | tr '[:upper:]' '[:lower:]')")
|
||||
done
|
||||
done < <(sed 's/\r/\n/g' < "$HOME/.local/share/winapps/installed")
|
||||
# FIXME
|
||||
# shellcheck disable=SC2207,SC2031
|
||||
IFS=$'\n' APPS=($(sort <<<"${APPS[*]}"))
|
||||
unset IFS
|
||||
OPTIONS=("Set up all detected pre-configured applications" "Select which pre-configured applications to set up" "Do not set up any pre-configured applications")
|
||||
|
||||
if [ "${INSTALL_TYPE}" != 'User' ]; then
|
||||
if [ "$INSTALL_TYPE" != 'User' ]; then
|
||||
menuFromArr APP_INSTALL "How would you like to handle WinApps pre-configured applications?" "${OPTIONS[@]}"
|
||||
else "grep -l -d skip"
|
||||
menuFromArr APP_INSTALL "How would you like to handle WinApps pre-configured applications? If any web browser is set-up, may be configured as default browser." "${OPTIONS[@]}"
|
||||
fi
|
||||
if [ "${APP_INSTALL}" = "Select which pre-configured applications to set up" ]; then
|
||||
if [ "$APP_INSTALL" = "Select which pre-configured applications to set up" ]; then
|
||||
checkbox_input "Which pre-configured apps would you like to set up?" APPS SELECTED_APPS
|
||||
echo "" >"$HOME/.local/share/winapps/installed"
|
||||
for F in "${SELECTED_APPS[@]}"; do
|
||||
@ -139,16 +146,16 @@ function waConfigureApps() {
|
||||
fi
|
||||
$SUDO cp "$DIR/bin/winapps" "$BIN_PATH/winapps"
|
||||
COUNT=0
|
||||
if [ "${APP_INSTALL}" != "Do not set up any pre-configured applications" ]; then
|
||||
for F in $(cat "$HOME/.local/share/winapps/installed" | sed 's/\r/\n/g'); do
|
||||
if [ "$APP_INSTALL" != "Do not set up any pre-configured applications" ]; then
|
||||
while IFS= read -r F; do
|
||||
COUNT=$((COUNT + 1))
|
||||
$SUDO cp -r "apps/${F}" "$SYS_PATH/apps"
|
||||
waConfigureApp "${F}" svg
|
||||
done
|
||||
$SUDO cp -r "apps/$F" "$SYS_PATH/apps"
|
||||
waConfigureApp "$F" svg
|
||||
done < <(sed 's/\r/\n/g' < "$HOME/.local/share/winapps/installed")
|
||||
fi
|
||||
rm -f "$HOME/.local/share/winapps/installed"
|
||||
rm -f "$HOME/.local/share/winapps/installed.bat"
|
||||
if (($COUNT == 0)); then
|
||||
if ((COUNT == 0)); then
|
||||
echo " No configured applications."
|
||||
fi
|
||||
}
|
||||
@ -156,14 +163,14 @@ function waConfigureApps() {
|
||||
function waConfigureAppsAllOfficiallySupported(){
|
||||
$SUDO cp "$DIR/bin/winapps" "$BIN_PATH/winapps"
|
||||
COUNT=0
|
||||
for F in $(cat "$HOME/.local/share/winapps/installed" | sed 's/\r/\n/g'); do
|
||||
while IFS= read -r F; do
|
||||
COUNT=$((COUNT + 1))
|
||||
$SUDO cp -r "apps/${F}" "$SYS_PATH/apps"
|
||||
waConfigureApp "${F}" svg
|
||||
done
|
||||
$SUDO cp -r "apps/$F" "$SYS_PATH/apps"
|
||||
waConfigureApp "$F" svg
|
||||
done < <(sed 's/\r/\n/g' < "$HOME/.local/share/winapps/installed")
|
||||
rm -f "$HOME/.local/share/winapps/installed"
|
||||
rm -f "$HOME/.local/share/winapps/installed.bat"
|
||||
if (($COUNT == 0)); then
|
||||
if ((COUNT == 0)); then
|
||||
echo " No configured applications."
|
||||
fi
|
||||
}
|
||||
@ -171,15 +178,17 @@ function waConfigureAppsAllOfficiallySupported(){
|
||||
function waConfigureDetectedApps() {
|
||||
if [ -f "$HOME/.local/share/winapps/detected" ]; then
|
||||
sed -i 's/\r//g' "$HOME/.local/share/winapps/detected"
|
||||
# shellcheck disable=SC1091
|
||||
. "$HOME/.local/share/winapps/detected"
|
||||
APPS=()
|
||||
# shellcheck disable=SC2153
|
||||
for I in "${!NAMES[@]}"; do
|
||||
EXE=${EXES[$I]##*\\}
|
||||
EXE_LOWER=$(echo "$EXE" | tr '[:upper:]' '[:lower:]')
|
||||
if (
|
||||
dlm=$'\x1F'
|
||||
IFS="$dlm"
|
||||
[[ "$dlm${INSTALLED_EXES[*]}$dlm" != *"$dlm${EXE_LOWER}$dlm"* ]]
|
||||
[[ "$dlm${INSTALLED_EXES[*]}$dlm" != *"$dlm$EXE_LOWER$dlm"* ]]
|
||||
); then
|
||||
APPS+=("${NAMES[$I]} ($EXE)")
|
||||
fi
|
||||
@ -188,7 +197,7 @@ function waConfigureDetectedApps() {
|
||||
unset IFS
|
||||
OPTIONS=("Set up all detected applications" "Select which applications to set up" "Do not set up any applications")
|
||||
menuFromArr APP_INSTALL "How would you like to handle other detected applications?" "${OPTIONS[@]}"
|
||||
if [ "${APP_INSTALL}" = "Select which applications to set up" ]; then
|
||||
if [ "$APP_INSTALL" = "Select which applications to set up" ]; then
|
||||
checkbox_input "Which other apps would you like to set up?" APPS SELECTED_APPS
|
||||
echo "" >"$HOME/.local/share/winapps/installed"
|
||||
for F in "${SELECTED_APPS[@]}"; do
|
||||
@ -197,7 +206,7 @@ function waConfigureDetectedApps() {
|
||||
APP="${F% (*}"
|
||||
echo "$EXE|${APP}" >>"$HOME/.local/share/winapps/installed"
|
||||
done
|
||||
elif [ "${APP_INSTALL}" = "Set up all detected applications" ]; then
|
||||
elif [ "$APP_INSTALL" = "Set up all detected applications" ]; then
|
||||
for I in "${!EXES[@]}"; do
|
||||
EXE=${EXES[$I]##*\\}
|
||||
echo "$EXE|${NAMES[$I]}" >>"$HOME/.local/share/winapps/installed"
|
||||
@ -227,6 +236,7 @@ CATEGORIES=\"WinApps\"
|
||||
# GNOME mimetypes
|
||||
MIME_TYPES=\"\"
|
||||
" | sudo tee "$SYS_PATH/apps/$EXE/info" >/dev/null
|
||||
# shellcheck disable=SC2153
|
||||
echo "${ICONS[$I]}" | base64 -d | sudo tee "$SYS_PATH/apps/$EXE/icon.ico" >/dev/null
|
||||
waConfigureApp "$EXE" ico
|
||||
COUNT=$((COUNT + 1))
|
||||
@ -306,7 +316,7 @@ function waUninstallSystem() {
|
||||
done
|
||||
}
|
||||
|
||||
if [ -z "${1}" ]; then
|
||||
if [ -z "$1" ]; then
|
||||
OPTIONS=(User System)
|
||||
menuFromArr INSTALL_TYPE "Would you like to install for the current user or the whole system?" "${OPTIONS[@]}"
|
||||
elif [ "$1" = '--user' ]; then
|
||||
|
Loading…
x
Reference in New Issue
Block a user