installFlutterPiOnRemote method

Future<bool> installFlutterPiOnRemote(
  1. String username,
  2. InternetAddress ip, {
  3. bool addHostToKnownHosts = true,
})

Implementation

Future<bool> installFlutterPiOnRemote(
  String username,
  InternetAddress ip, {
  bool addHostToKnownHosts = true,
}) async {
  final snappInstallerPath = await findSnappInstallerPathInteractive(
    username,
    ip,
  );

  final RunResult result;

  final installFlutterPiCommand = '$snappInstallerPath install_flutter_pi';

  logger.detail('Install Flutter Pi Command: \n $installFlutterPiCommand');

  try {
    result = await processRunner.runWithOutput(
      hostPlatform.sshCommand(
        ipv6: ip.isIpv6,
        sshTarget: ip.sshTarget(username),
        lastCommand: true,
        command: installFlutterPiCommand,
        addHostToKnownHosts: addHostToKnownHosts,
      ),
      processManager: processManager,
      logger: logger,
    );
  } catch (e, s) {
    logger.detail(
      'Something went wrong while trying to install flutter-pi on the remote. \n $e \n $s',
    );

    return false;
  } finally {
    logger.spaces();
  }

  if (result.exitCode != 0) {
    logger.info('Flutter Pi Installer ExitCode: ${result.exitCode}');
    logger.info('Flutter Pi Installer Stdout: ${result.stdout.trim()}');
    logger.info('Flutter Pi Installer Stderr: ${result.stderr}');
  }

  return result.exitCode == 0;
}