Skip to content

Commit

Permalink
opt.: install script
Browse files Browse the repository at this point in the history
  • Loading branch information
lollipopkit committed Feb 23, 2024
1 parent 37dc105 commit fad3f41
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 39 deletions.
16 changes: 5 additions & 11 deletions lib/data/model/app/shell_func.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,11 @@ enum ShellFunc {

/// Issue #168
/// Use `sh` for compatibility
// static final installShellCmd = """
// mkdir -p $_homeVar/$_srvBoxDir
// cat << 'EOF' > $_installShellPath
// ${ShellFunc.allScript}
// EOF
// chmod +x $_installShellPath
// """;

static const installerMkdirs = "mkdir -p $_homeVar/$_srvBoxDir";
static const installerShellWriter = "cat > $_installShellPath";
static const installerPermissionModifier = "chmod +x $_installShellPath";
static const installShellCmd = """
mkdir -p $_homeVar/$_srvBoxDir
cat > $_installShellPath
chmod +x $_installShellPath
""";

String get flag {
switch (this) {
Expand Down
5 changes: 5 additions & 0 deletions lib/data/model/server/server_status_update_req.dart
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,11 @@ Future<ServerStatus> _getLinuxStatus(ServerStatusUpdateReq req) async {
try {
final cpus = OneTimeCpuStatus.parse(StatusCmdType.cpu.find(segments));
req.ss.cpu.update(cpus);
} catch (e, s) {
Loggers.parse.warning(e, s);
}

try {
req.ss.temps.parse(
StatusCmdType.tempType.find(segments),
StatusCmdType.tempVal.find(segments),
Expand Down
32 changes: 4 additions & 28 deletions lib/data/provider/server.dart
Original file line number Diff line number Diff line change
Expand Up @@ -258,33 +258,6 @@ class ServerProvider extends ChangeNotifier {
notifyListeners();
}

Future<void> _writeInstallerScript(Server s) async {
/// TODO: Find a better way to judge if the write is successful
// Issues #275
// Can't use writeResult to judge if the write is successful

// void ensure(String? writeResult) {
// if (writeResult == null || writeResult.isNotEmpty) {
// throw Exception("Failed to write installer script: $writeResult");
// }
// }

final client = s.client;
if (client == null) {
throw Exception("Invalid state: s.client cannot be null");
}

await client.run(ShellFunc.installerMkdirs).string;

await client.runForOutput(ShellFunc.installerShellWriter,
action: (session) async {
session.stdin.add(ShellFunc.allScript.uint8List);
}).string;

await client.run(ShellFunc.installerPermissionModifier).string;
}

Future<void> _getData(ServerPrivateInfo spi) async {
final sid = spi.id;
final s = _servers[sid];
Expand Down Expand Up @@ -333,7 +306,10 @@ class ServerProvider extends ChangeNotifier {
// Write script to server
// by ssh
try {
await _writeInstallerScript(s);
await s.client?.runForOutput(ShellFunc.installShellCmd,
action: (session) async {
session.stdin.add(ShellFunc.allScript.uint8List);
}).string;
} on SSHAuthAbortError catch (e) {
TryLimiter.inc(sid);
s.status.err = e.toString();
Expand Down

0 comments on commit fad3f41

Please sign in to comment.