createIcons function

void createIcons(
  1. Directory path,
  2. List<String> platforms
)

Implementation

void createIcons(Directory path, List<String> platforms) {
  if (!File('${path.path}${Platform.pathSeparator}icon.png').existsSync()) {
    return;
  }
  final work = Directory(
    [path.path, '.dart_tool', 'riddance_env'].join(Platform.pathSeparator),
  )..createSync(recursive: true);
  final configFile = '${work.path}${Platform.pathSeparator}icons_launcher.yaml';
  File(configFile).writeAsStringSync('''
icons_launcher:
  image_path: icon.png
  platforms:
${[if (platforms.contains('android')) '''
    android:
      enable: true
      adaptive_foreground_image: icon.png
      adaptive_background_color: '#000000'
''', if (platforms.contains('ios')) '''
    ios:
      enable: true
''', if (platforms.contains('web')) '''
    web:
      enable: true
''', if (platforms.contains('macos')) '''
    macos:
      enable: true
''', if (platforms.contains('windows')) '''
    windows:
      enable: true
''', if (platforms.contains('linux')) '''
    linux:
      enable: true
'''].join()}
''');
  createIconsLauncher(path: configFile);
  if (platforms.contains('linux')) {
    final freedesktopPath = [
      path.path,
      'linux',
      'freedesktop',
    ].join(Platform.pathSeparator);
    Directory(freedesktopPath).createSync(recursive: true);
    File(
      [path.path, 'snap', 'gui', 'app_icon.png'].join(Platform.pathSeparator),
    ).renameSync('$freedesktopPath${Platform.pathSeparator}app_icon.png');
    Directory(
      '${path.path}${Platform.pathSeparator}snap',
    ).deleteSync(recursive: true);
  }
}