From e18ef766ca0b59c50757e881e65a658dc9e0b38c Mon Sep 17 00:00:00 2001 From: Diogo Trindade Date: Sun, 26 Mar 2023 20:08:53 +0100 Subject: [PATCH 1/7] Linux - Add icons --- src/Artemis.UI.Linux/Artemis.UI.Linux.csproj | 3 +++ .../Icons/128x128/apps/artemis.png | Bin 0 -> 5981 bytes .../Icons/16x16/apps/artemis.png | Bin 0 -> 518 bytes .../Icons/256x256/apps/artemis.png | Bin 0 -> 12986 bytes .../Icons/32x32/apps/artemis.png | Bin 0 -> 1185 bytes .../Icons/48x48/apps/artemis.png | Bin 0 -> 1986 bytes .../Icons/64x64/apps/artemis.png | Bin 0 -> 2737 bytes 7 files changed, 3 insertions(+) create mode 100644 src/Artemis.UI.Linux/Icons/128x128/apps/artemis.png create mode 100644 src/Artemis.UI.Linux/Icons/16x16/apps/artemis.png create mode 100644 src/Artemis.UI.Linux/Icons/256x256/apps/artemis.png create mode 100644 src/Artemis.UI.Linux/Icons/32x32/apps/artemis.png create mode 100644 src/Artemis.UI.Linux/Icons/48x48/apps/artemis.png create mode 100644 src/Artemis.UI.Linux/Icons/64x64/apps/artemis.png diff --git a/src/Artemis.UI.Linux/Artemis.UI.Linux.csproj b/src/Artemis.UI.Linux/Artemis.UI.Linux.csproj index 7d19d5e97..e93cdd4f2 100644 --- a/src/Artemis.UI.Linux/Artemis.UI.Linux.csproj +++ b/src/Artemis.UI.Linux/Artemis.UI.Linux.csproj @@ -27,4 +27,7 @@ + + + \ No newline at end of file diff --git a/src/Artemis.UI.Linux/Icons/128x128/apps/artemis.png b/src/Artemis.UI.Linux/Icons/128x128/apps/artemis.png new file mode 100644 index 0000000000000000000000000000000000000000..01b8149d510b7d409e32ecbcfce5ceda0569a172 GIT binary patch literal 5981 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 LNkvXXu0mjfI;=$M literal 0 HcmV?d00001 diff --git a/src/Artemis.UI.Linux/Icons/16x16/apps/artemis.png b/src/Artemis.UI.Linux/Icons/16x16/apps/artemis.png new file mode 100644 index 0000000000000000000000000000000000000000..00d10d10d22dfbeffbca27c53212ef8a9af25d80 GIT binary patch literal 518 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf{{Wv5S0F7cEG&uyfLt*!fQUob zKzSeoAtEj=DlN^_R>d%(iLt$kJv~;?NKZswPEN?7)+sYYvn1?YJrishS zNr}sdi-~zE%5`d+FEdJ5Wn5z-Yrq~G!f#=$Eh9Bk-}t&!Y>!^Fx1s}&y91A#eS^Nn zJbg2DDVc-jeVS5gJT7+Ju6D|j3g@hra0GernHj1}DK9ae$dVK;A}hn`=f-PeCMGV{ zbEe@EC|pW{{DK+ucYOQ4+xYW0(*wW%9R6Wx)akqxD7Vbh#W6(UvhVqDv8DhXmJ13i z8Z?gFv;KCk`n_!F|7^jQff~)7vyY7Y1wGaprIahs3;-0{dzhV|CU?-91KLR z9b}z!Yhs4ZJdY%;xsF#9W}j9*)ta=j$0}si)~dxfv&wg|C9JoX=sPx9Q)tFn@zbK~ z%++$re;*d~PZt)@4?lAIE>pkyDgCGXJUc)By%@z{&G>ZnR%w|vUoHDN4t&(x#FZyl Y*XkwlOg6!CI?%-op00i_>zopr08vDnHUIzs literal 0 HcmV?d00001 diff --git a/src/Artemis.UI.Linux/Icons/256x256/apps/artemis.png b/src/Artemis.UI.Linux/Icons/256x256/apps/artemis.png new file mode 100644 index 0000000000000000000000000000000000000000..22bc95aa351879daa2f229c660e689e85861d9dd GIT binary patch literal 12986 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.UI.Linux/Icons/32x32/apps/artemis.png b/src/Artemis.UI.Linux/Icons/32x32/apps/artemis.png new file mode 100644 index 0000000000000000000000000000000000000000..6434edb8e306d729441c4083e0d4b155a0d1e9d5 GIT binary patch literal 1185 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 U`}@i?#sB~S07*qoM6N<$f}gkaSpWb4 literal 0 HcmV?d00001 diff --git a/src/Artemis.UI.Linux/Icons/64x64/apps/artemis.png b/src/Artemis.UI.Linux/Icons/64x64/apps/artemis.png new file mode 100644 index 0000000000000000000000000000000000000000..bc81ba29079a15b1986998afb6c02c5245cb6e6b GIT binary patch literal 2737 zcmV;i3QqNjP)fE^(&92dDThWrQHp*T|`=1wk^w}EflSUSg~|rm)AbTYPAKi z+6A)Cv zIT*+BZ#>U?)c5^?#oWB$WNNBAe&|2qx-+%U;1f>dJyNF);LT3cHO#nr|DP%IX2(~jfZ zw_M<3H;Hi^jHPQ9HmD-Y9-`tmB>}c=ze6jfc3f1X)zeAgp4$n#Ixq zfumg4{j8L7Nj5+jLv&3$VMqIUS6`T!1l5VDU&kpIf6FGqt`4kIBS=5Elv@Ci%jJwx zYU!gWNu}?4Vke2ppFtK&$e>!on6QY`DWdi)VRr}BH9f@1L<0fLAV&mM(z~7^`NGjl zN5VxDa6vjJ2-fuA_g#;_c|AsodC72o{{rc!pM`k-G+qmfPTd1Sfspm42x5;h|9BG< zFw)elM6DUBCSY}9Q^Tr9_4f4XZ&9d@T(}c+UH4N`E{%uo zl;W{>xAC^?T;8?bWlJi--qCP%tT4Ddw}0I+Mw=aE4VWdxg@1Xffd zfU2myh6*igu1&P^I=73vGuLrf%LWQj#JZIW5tkv+ds}151!%P&J_2zXV{)_5s|@%!&4O1t$45$wU2N$-BHdA7hpvOUwr$2zuglhs3vOH|(y2F*xZ;!9&c;nx$t zKX+_!>J{Qm>!uQ=FqdsE8*nb^bzT0ca|5^AbAg8_9xm+Vo3HFd8;fo3_4JotoS%TP zJpRUOrwn0~axq#V!l*e3Sd&cfv5s!up6UYA2;89Q4`1c8r*|<>I?X+;H}luI`}p9A z|2(&=I#ZZcae~-&P?N>xA|PjL{;oU6d)zEKc8H9wTlQKj0{@-g!w<)vXLTaSf35u> z+nufaU}85D;pDjk!*XR#tuap8%|*b6*R}J}TpQ^?VXCSDxIy!)$|*i~dM_h>iFfB- z&xdn&p-B^=`S}6`3{kDlDYP1`n#Ts*)1BsDy4w)Ggh(_1KN*Mo$LRmDb7B~PluGi^ z+#Au@L}>c`VNUuBl*Z>PvoF)pq-7ysUBas8rC^N2psAwxZef_OzH*duIGv^4n%;y( zVoF1vDIHu?`F&f96oW3fj$DlIs6m~EM}`mz!<&lXs$thYO1#_Eq$ z7njF}*R;)8ebD2RS4Jc_TUJ{+4AzteOvVdmbS7a@ZO=BiL2GP$`O5Q`l7J4~)?fe^ zW5)coJvEOv!wXm=V^^jIwCR=x0xawWa#g6TU)!+ys#Hc#OkSB9V2MNn0ZExUZ~tIb z7g5HYeqdq@_VM9mozo>H;K{;%BBm=uk5BGAPw*otZ`(ZMaD_pHA<5$>mvv5;{NZSy z+sk(MH5{xAvbXr#bM`CuZN}TQt`_yx_kQx|3Eci8%T7S7lxnIIV%5$ZlYe?sZGv_1 z!Vk#q+_UUwizKx_8#Ij=OHLmm8d<|J8B^iyHm_STk`mj0{oq%5UU=`GUt{edWo_FQe?qbM3Gl}b-YfFKCI zaJ3N-hT)f~ow2BGz4rF@r?l2@xJp+4Xg;66!5C9H8wwlG^F9#AacQN4H^xN1@4w#| zQ)$QrJkLAi`~C-vF=izb;QRh3i^bxv&%SR+0)ilTUTd9KO1*g{{(-{x{Vz>UPX7DM z&(u7fo>fY{q?Gz|A%tE*YX6DZ;O8Zvt_cT#N2QdvNGW@+bc0u^R30c43O_hU&E>qJ zGMUVKEz5dHYu$UL`S~ymzdSiP`Hiy%Zz%*!^>bZ!hi%*U3n6w0A^N10PP3Q^V+?T| r2gaB~#+cs(LGVbaRC)qfFn#=gy6^&3!Jg6j00000NkvXXu0mjfiqTge literal 0 HcmV?d00001 From 0c1160eb62dab92831a9d15845ea17979ed9bec1 Mon Sep 17 00:00:00 2001 From: Diogo Trindade Date: Sun, 26 Mar 2023 22:06:01 +0100 Subject: [PATCH 2/7] Linux - Added update script I need this on my linux machine :) --- .../ApplicationStateManager.cs | 34 ++++++++++ src/Artemis.UI.Linux/Artemis.UI.Linux.csproj | 1 + src/Artemis.UI.Linux/Scripts/update.sh | 68 +++++++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 src/Artemis.UI.Linux/Scripts/update.sh diff --git a/src/Artemis.UI.Linux/ApplicationStateManager.cs b/src/Artemis.UI.Linux/ApplicationStateManager.cs index 997c19ef3..2a57426a3 100644 --- a/src/Artemis.UI.Linux/ApplicationStateManager.cs +++ b/src/Artemis.UI.Linux/ApplicationStateManager.cs @@ -29,6 +29,7 @@ public class ApplicationStateManager Core.Utilities.ShutdownRequested += UtilitiesOnShutdownRequested; Core.Utilities.RestartRequested += UtilitiesOnRestartRequested; + Core.Utilities.UpdateRequested += UtilitiesOnUpdateRequested; // On OS shutdown dispose the IOC container just so device providers get a chance to clean up if (Application.Current?.ApplicationLifetime is IControlledApplicationLifetime controlledApplicationLifetime) @@ -138,4 +139,37 @@ public class ApplicationStateManager //todo } + + private void UtilitiesOnUpdateRequested(object? sender, UpdateEventArgs e) + { + List argsList = new(StartupArguments); + if (e.Silent && !argsList.Contains("--minimized")) + argsList.Add("--minimized"); + + // Retain startup arguments after update by providing them to the script + string script = Path.Combine(Constants.UpdatingFolder, "installing", "Scripts", "update.sh"); + string source = $"\"{Path.Combine(Constants.UpdatingFolder, "installing")}\""; + string destination = $"\"{Constants.ApplicationFolder}\""; + string args = argsList.Any() ? $"\"'{string.Join(' ', argsList)}'\"" : ""; + + RunScriptWithOutputFile(script, $"{source} {destination} {args}", Path.Combine(Constants.DataFolder, "update-log.txt")); + + // Lets try a graceful shutdown, PowerShell will kill if needed + if (Application.Current?.ApplicationLifetime is IControlledApplicationLifetime controlledApplicationLifetime) + Dispatcher.UIThread.Post(() => controlledApplicationLifetime.Shutdown()); + } + + private void RunScriptWithOutputFile(string script, string arguments, string outputFile) + { + // Use > for files that are bigger than 200kb to start fresh, otherwise use >> to append + string redirectSymbol = File.Exists(outputFile) && new FileInfo(outputFile).Length > 200000 ? ">" : ">>"; + ProcessStartInfo info = new() + { + Arguments = $"\"{script}\" {arguments} {redirectSymbol} \"{outputFile}\"", + FileName = "/bin/bash", + WindowStyle = ProcessWindowStyle.Hidden, + CreateNoWindow = true, + }; + Process.Start(info); + } } \ No newline at end of file diff --git a/src/Artemis.UI.Linux/Artemis.UI.Linux.csproj b/src/Artemis.UI.Linux/Artemis.UI.Linux.csproj index e93cdd4f2..3d48d5686 100644 --- a/src/Artemis.UI.Linux/Artemis.UI.Linux.csproj +++ b/src/Artemis.UI.Linux/Artemis.UI.Linux.csproj @@ -29,5 +29,6 @@ + \ No newline at end of file diff --git a/src/Artemis.UI.Linux/Scripts/update.sh b/src/Artemis.UI.Linux/Scripts/update.sh new file mode 100644 index 000000000..db79c50fb --- /dev/null +++ b/src/Artemis.UI.Linux/Scripts/update.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +# This script is used to update Artemis on Linux. +# Arguments: +# $1 = sourceDirectory, the directory where the new files are located +# $2 = destinationDirectory, the directory where the old files are located +# $3 = artemisArgs, the arguments to pass to the Artemis executable + +sourceDirectory=$1 +destinationDirectory=$2 +artemisArgs=$3 + +echo "sourceDirectory $sourceDirectory" +echo "destinationDirectory $destinationDirectory" +echo "artemisArgs $artemisArgs" +exit 0 + +# Wait for up to 10 seconds for the Artemis process to exit +i=0 +while [ $i -le 10 ] +do + if ! pgrep -x "Artemis.UI.Linux" > /dev/null + then + break + fi + sleep 1 + i=$((i+1)) +done + +# If the Artemis process is still running, kill it +if pgrep -x "Artemis.UI.Linux" > /dev/null +then + pkill -x "Artemis.UI.Linux" +fi + +# Check if the destination directory exists +if [ ! -d "$destinationDirectory" ] +then + echo "Destination directory does not exist" + exit 1 +fi + +# Clear the destination directory but don't remove it +echo "Cleaning up old version where needed" +rm -rf "{$destinationDirectory:?}/"* + +# Move the contents of the source directory to the destination directory +echo "Installing new files" +mv "$sourceDirectory"/* "$destinationDirectory" + +# Remove the now empty source directory +rmdir "$sourceDirectory" + +echo "Finished! Restarting Artemis" +sleep 1 + +# When finished, start Artemis again + +# If the user has specified arguments, pass them to the executable +if [ -z "$artemisArgs" ] +then + "$1/Artemis.UI.Linux" & +else + "$1/Artemis.UI.Linux" "$artemisArgs" & +fi + + + From 40eb66497f9bd16668fe799ec3ed491e4d23e48d Mon Sep 17 00:00:00 2001 From: Diogo Trindade Date: Sun, 26 Mar 2023 22:47:49 +0100 Subject: [PATCH 3/7] Linux - update script fixes --- src/Artemis.UI.Linux/Scripts/update.sh | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/Artemis.UI.Linux/Scripts/update.sh b/src/Artemis.UI.Linux/Scripts/update.sh index db79c50fb..315a1816e 100644 --- a/src/Artemis.UI.Linux/Scripts/update.sh +++ b/src/Artemis.UI.Linux/Scripts/update.sh @@ -10,11 +10,6 @@ sourceDirectory=$1 destinationDirectory=$2 artemisArgs=$3 -echo "sourceDirectory $sourceDirectory" -echo "destinationDirectory $destinationDirectory" -echo "artemisArgs $artemisArgs" -exit 0 - # Wait for up to 10 seconds for the Artemis process to exit i=0 while [ $i -le 10 ] @@ -42,7 +37,7 @@ fi # Clear the destination directory but don't remove it echo "Cleaning up old version where needed" -rm -rf "{$destinationDirectory:?}/"* +rm -rf "${destinationDirectory:?}/"* # Move the contents of the source directory to the destination directory echo "Installing new files" @@ -59,9 +54,9 @@ sleep 1 # If the user has specified arguments, pass them to the executable if [ -z "$artemisArgs" ] then - "$1/Artemis.UI.Linux" & + "$destinationDirectory/Artemis.UI.Linux" & else - "$1/Artemis.UI.Linux" "$artemisArgs" & + "$destinationDirectory/Artemis.UI.Linux" "$artemisArgs" & fi From 0f61ad8c7ba12f7ec23660843cf1a88f32af7560 Mon Sep 17 00:00:00 2001 From: Diogo Trindade Date: Sun, 26 Mar 2023 23:12:43 +0100 Subject: [PATCH 4/7] Linux - Ensure the executable can execute --- src/Artemis.UI.Linux/ApplicationStateManager.cs | 2 +- src/Artemis.UI.Linux/Scripts/update.sh | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/Artemis.UI.Linux/ApplicationStateManager.cs b/src/Artemis.UI.Linux/ApplicationStateManager.cs index 2a57426a3..dd4ae179a 100644 --- a/src/Artemis.UI.Linux/ApplicationStateManager.cs +++ b/src/Artemis.UI.Linux/ApplicationStateManager.cs @@ -150,7 +150,7 @@ public class ApplicationStateManager string script = Path.Combine(Constants.UpdatingFolder, "installing", "Scripts", "update.sh"); string source = $"\"{Path.Combine(Constants.UpdatingFolder, "installing")}\""; string destination = $"\"{Constants.ApplicationFolder}\""; - string args = argsList.Any() ? $"\"'{string.Join(' ', argsList)}'\"" : ""; + string args = argsList.Any() ? $"\"{string.Join(' ', argsList)}\"" : ""; RunScriptWithOutputFile(script, $"{source} {destination} {args}", Path.Combine(Constants.DataFolder, "update-log.txt")); diff --git a/src/Artemis.UI.Linux/Scripts/update.sh b/src/Artemis.UI.Linux/Scripts/update.sh index 315a1816e..f8b47c72c 100644 --- a/src/Artemis.UI.Linux/Scripts/update.sh +++ b/src/Artemis.UI.Linux/Scripts/update.sh @@ -1,11 +1,5 @@ #!/bin/bash -# This script is used to update Artemis on Linux. -# Arguments: -# $1 = sourceDirectory, the directory where the new files are located -# $2 = destinationDirectory, the directory where the old files are located -# $3 = artemisArgs, the arguments to pass to the Artemis executable - sourceDirectory=$1 destinationDirectory=$2 artemisArgs=$3 @@ -46,6 +40,9 @@ mv "$sourceDirectory"/* "$destinationDirectory" # Remove the now empty source directory rmdir "$sourceDirectory" +# Ensure the executable is executable +chmod +x "$destinationDirectory/Artemis.UI.Linux" + echo "Finished! Restarting Artemis" sleep 1 From d9a60036d9d2db9a339a2079fa5e3b49057e720c Mon Sep 17 00:00:00 2001 From: Diogo Trindade Date: Sun, 26 Mar 2023 23:46:32 +0100 Subject: [PATCH 5/7] Linux - always overwrite update log Also i need a new build to test :) --- src/Artemis.UI.Linux/ApplicationStateManager.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Artemis.UI.Linux/ApplicationStateManager.cs b/src/Artemis.UI.Linux/ApplicationStateManager.cs index dd4ae179a..41b999a65 100644 --- a/src/Artemis.UI.Linux/ApplicationStateManager.cs +++ b/src/Artemis.UI.Linux/ApplicationStateManager.cs @@ -154,18 +154,16 @@ public class ApplicationStateManager RunScriptWithOutputFile(script, $"{source} {destination} {args}", Path.Combine(Constants.DataFolder, "update-log.txt")); - // Lets try a graceful shutdown, PowerShell will kill if needed + // Lets try a graceful shutdown, the script will kill if needed if (Application.Current?.ApplicationLifetime is IControlledApplicationLifetime controlledApplicationLifetime) Dispatcher.UIThread.Post(() => controlledApplicationLifetime.Shutdown()); } - private void RunScriptWithOutputFile(string script, string arguments, string outputFile) + private static void RunScriptWithOutputFile(string script, string arguments, string outputFile) { - // Use > for files that are bigger than 200kb to start fresh, otherwise use >> to append - string redirectSymbol = File.Exists(outputFile) && new FileInfo(outputFile).Length > 200000 ? ">" : ">>"; ProcessStartInfo info = new() { - Arguments = $"\"{script}\" {arguments} {redirectSymbol} \"{outputFile}\"", + Arguments = $"\"{script}\" {arguments} > \"{outputFile}\"", FileName = "/bin/bash", WindowStyle = ProcessWindowStyle.Hidden, CreateNoWindow = true, From 8fc296a4c511dbd90096af6d7d994a59a0983777 Mon Sep 17 00:00:00 2001 From: Diogo Trindade Date: Mon, 27 Mar 2023 00:07:39 +0100 Subject: [PATCH 6/7] Linux - fixed passed arguments --- src/Artemis.UI.Linux/ApplicationStateManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Artemis.UI.Linux/ApplicationStateManager.cs b/src/Artemis.UI.Linux/ApplicationStateManager.cs index 41b999a65..e580f5fdf 100644 --- a/src/Artemis.UI.Linux/ApplicationStateManager.cs +++ b/src/Artemis.UI.Linux/ApplicationStateManager.cs @@ -150,7 +150,7 @@ public class ApplicationStateManager string script = Path.Combine(Constants.UpdatingFolder, "installing", "Scripts", "update.sh"); string source = $"\"{Path.Combine(Constants.UpdatingFolder, "installing")}\""; string destination = $"\"{Constants.ApplicationFolder}\""; - string args = argsList.Any() ? $"\"{string.Join(' ', argsList)}\"" : ""; + string args = argsList.Any() ? string.Join(' ', argsList) : ""; RunScriptWithOutputFile(script, $"{source} {destination} {args}", Path.Combine(Constants.DataFolder, "update-log.txt")); From c3aa8b0831bedb522f894e5fc318e42b94e1361f Mon Sep 17 00:00:00 2001 From: Diogo Trindade Date: Mon, 27 Mar 2023 00:37:52 +0100 Subject: [PATCH 7/7] Linux - Fixed passed arguments again --- src/Artemis.UI.Linux/Scripts/update.sh | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/Artemis.UI.Linux/Scripts/update.sh b/src/Artemis.UI.Linux/Scripts/update.sh index f8b47c72c..9ee398d2c 100644 --- a/src/Artemis.UI.Linux/Scripts/update.sh +++ b/src/Artemis.UI.Linux/Scripts/update.sh @@ -48,13 +48,9 @@ sleep 1 # When finished, start Artemis again -# If the user has specified arguments, pass them to the executable -if [ -z "$artemisArgs" ] -then - "$destinationDirectory/Artemis.UI.Linux" & -else - "$destinationDirectory/Artemis.UI.Linux" "$artemisArgs" & -fi +# quoting here breaks stuff, all arguments count as 1 +# shellcheck disable=SC2086 +"$destinationDirectory/Artemis.UI.Linux" $artemisArgs &