Skip to content

Commit 1375bab

Browse files
feat: adding restart services button
1 parent f798fe3 commit 1375bab

File tree

3 files changed

+35
-4
lines changed

3 files changed

+35
-4
lines changed

src/SiteMonitor/ViewModels/MainWindowViewModel.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public class MainWindowViewModel : ViewModelBase {
3939
public MainWindowViewModel() {
4040
OnShowCommandsCommand = ReactiveCommand.Create(OnShowCommands);
4141
OnRestartCommand = ReactiveCommand.Create(OnRestart);
42+
OnRestartImagesCommand = ReactiveCommand.Create(OnRestartImages);
4243
Task.Factory.StartNew(PingServer);
4344
Task.Factory.StartNew(PingSite);
4445
ServerAddress = Configuration.Instance.ServerAddress;
@@ -169,6 +170,11 @@ public string? SshPassword {
169170
/// </summary>
170171
public ICommand OnRestartCommand { get; set; }
171172

173+
/// <summary>
174+
/// Restarts the remote docker images.
175+
/// </summary>
176+
public ICommand OnRestartImagesCommand { get; set; }
177+
172178
/// <summary>
173179
/// Restarts the remote machine.
174180
/// </summary>
@@ -179,6 +185,24 @@ private async Task OnRestart() {
179185
using SshCommand? ssh = client.RunCommand($"echo {_sshPassword} | sudo -S {command}");
180186
}
181187

188+
/// <summary>
189+
/// Restarts the docker images.
190+
/// </summary>
191+
private async Task OnRestartImages() {
192+
using SshClient client = new(_serverAddress!, _sshUsername!, _sshPassword!);
193+
await client.ConnectAsync(CancellationToken.None);
194+
string[] command = [
195+
"docker compose -p nullinside-ui restart",
196+
"docker compose -p nullinside-api restart",
197+
"docker compose -p nullinside-api-null restart",
198+
"docker compose -p nullinside-api-twitch-bot restart"
199+
];
200+
201+
foreach (string line in command) {
202+
using SshCommand? ssh = client.RunCommand($"echo {_sshPassword} | sudo -S {line}");
203+
}
204+
}
205+
182206
/// <summary>
183207
/// Handles showing the server commands.
184208
/// </summary>

src/SiteMonitor/Views/MainWindow.axaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,16 @@
7979
RevealPassword="False"
8080
Text="{Binding SshPassword}" />
8181
</Grid>
82-
<Button HorizontalAlignment="Right"
83-
Command="{Binding OnRestartCommand}">
84-
Restart Computer
85-
</Button>
82+
<StackPanel Orientation="Horizontal">
83+
<Button HorizontalAlignment="Right"
84+
Command="{Binding OnRestartCommand}">
85+
Restart Computer
86+
</Button>
87+
<Button HorizontalAlignment="Right"
88+
Command="{Binding OnRestartImagesCommand}">
89+
Restart Services
90+
</Button>
91+
</StackPanel>
8692
</StackPanel>
8793
</StackPanel>
8894
<UniformGrid Grid.Row="3" Margin="0 25 0 0">

src/SiteMonitor/Views/MainWindow.axaml.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
using Avalonia.Threading;
1313

1414
using SiteMonitor.ViewModels;
15+
1516
#else
1617
using Avalonia;
1718
#endif

0 commit comments

Comments
 (0)