checkForUpdate function

void checkForUpdate()

Implementation

void checkForUpdate() async {
  if (!CliConfig.updateIsCheckingToday()) {
    if (!isDevVersion()) {
      await PubDevApi.getLatestVersionFromPackage('flutter_template_cli')
          .then((versionInPubDev) async {
        await PubspecLock.getVersionCli(disableLog: true)
            .then((versionInstalled) async {
          if (versionInstalled == null) exit(2);
          final v1 = Version.parse(versionInPubDev?.replaceAll('^', ''));
          final v2 = Version.parse(versionInstalled);
          final needsUpdate = v1.compareTo(v2);
          // needs update.
          if (needsUpdate == 1) {
            LogService.info(Translation(
                    LocaleKeys.info_update_available.trArgs([versionInstalled]))
                .toString());
            printFlutterTemplateCli();
            final String? codeSample = LogService.code('ftc update');
            LogService.info(
                '${LocaleKeys.info_update_available2.trArgs([
                      versionInPubDev
                    ])}${' $codeSample'}',
                false,
                true);
          }
        });
      });
      CliConfig.setUpdateCheckToday();
    }
  }
}