createLinuxIcons function

void createLinuxIcons({
  1. required String imagePath,
})

Start create linux icons

Implementation

void createLinuxIcons({required String imagePath}) {
  CliLogger.info('Creating Linux icons...', emoji: '🐧');

  final image = Icon.loadFile(imagePath);
  if (image == null) {
    CliLogger.error('The file $imagePath could not be read.', level: .two);
    exit(1);
  }

  // icon and .desktop file name must be the same as your app name in yaml file
  final appName = _readAppNameFromYaml();
  final appVersion = _readAppVersionFromYaml();
  final iconFileName = '$appName.png';

  final template = LinuxIconTemplate(name: appName, size: 256);
  _saveImageLinux(template, image, iconFileName);
  CliLogger.success('Generated app icon image', level: .two);

  // Create snapcraft.yaml file
  final snapcraftFile = File('${LINUX_DEFAULT_SNAP_DIR}snapcraft.yaml');
  if (!snapcraftFile.existsSync()) {
    _createSnapcraftFile(appName, appVersion);
    CliLogger.success('Created snapcraft file', level: .two);
  } else {
    CliLogger.warning('Snapcraft file already exists', level: .two);
  }

  // Create desktop entry file
  final desktopFile = File('$LINUX_DEFAULT_ICON_DIR$appName.desktop');
  if (!desktopFile.existsSync()) {
    _createLinuxDesktopFile(appName);
    CliLogger.success('Created desktop entry file', level: .two);
  } else {
    CliLogger.warning('Desktop entry file already exists', level: .two);
  }
}