createLinuxIcons function
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);
}
}