initReleaseFile method
Future<void>
initReleaseFile(
)
Implementation
Future<void> initReleaseFile() async {
try {
Map<String, dynamic> release = {};
final file = File('$currentPath/release.json');
if (await file.exists()) {
release = jsonDecode(await file.readAsString());
}
List<dynamic> versions = release['versions'] ?? [];
String desc = pubspec['description'] ?? '';
String version = pubspec['version'] ?? '';
String repository = pubspec['repository'] ?? '';
//set
release['description'] = desc;
release['version'] = version;
release['repository'] = repository;
release['changelog_url'] = "";
release['readme_url'] = "";
release['cover_url'] = "";
var genReleasePlatforms = [Platform.operatingSystem];
//auto
if (repository.isNotEmpty) {
//auto ထည့်မယ်
release['changelog_url'] = getRawUrl(repository, 'CHANGELOG.md');
release['readme_url'] = getRawUrl(repository, 'README.md');
release['license_url'] = getRawUrl(repository, 'LICENSE');
}
//custom t_release
final releasePubspecMap = pubspec['t_release'];
if (releasePubspecMap != null) {
final coverPath = releasePubspecMap['cover_path'];
final coverUrl = releasePubspecMap['cover_url'];
if (releasePubspecMap['changelog_url'] != null) {
release['changelog_url'] = releasePubspecMap['changelog_url'];
}
if (releasePubspecMap['readme_url'] != null) {
release['readme_url'] = releasePubspecMap['readme_url'];
}
//cover path
if (coverPath != null && coverPath.toString().isNotEmpty) {
if (repository.isNotEmpty) {
release['cover_url'] = getRawUrl(repository, coverPath.toString());
}
}
//cover url
if (coverUrl != null && coverUrl.toString().isNotEmpty) {
release['cover_url'] = coverUrl.toString();
}
//platforms
if (releasePubspecMap['platfoms'] != null) {
String platforms =
releasePubspecMap['platfoms'] ?? Platform.operatingSystem;
genReleasePlatforms = platforms.split(',');
}
}
//version မတူညီရင် ထည့်မယ်
if (versions.isEmpty || versions.first['version'] != version) {
//add version
for (var plaform in genReleasePlatforms) {
versions.insert(0, {
"version": version,
"platform": plaform,
"url": "",
"description": "",
"date": DateTime.now().millisecondsSinceEpoch,
});
}
}
//version list
release['versions'] = versions;
//save
await file.writeAsString(JsonEncoder.withIndent(' ').convert(release));
} catch (e) {
print('initReleaseFile: ${e.toString()}');
}
}