Babylonia-terminal/babylonia_terminal_launcher/lib/models/release_notice.dart
2024-11-06 19:54:10 +01:00

24 lines
723 B
Dart

import 'package:flutter/services.dart';
class ReleaseNoticeInfo {
static Future<String> getInfo(String currentVersion) async {
final content = await rootBundle.loadString("CHANGELOG.md");
return parseChangelog(content, currentVersion);
}
static String parseChangelog(String content, String currentVersion) {
final regex = RegExp(r'(## \[' +
currentVersion +
'].+)(?<content>(.|\n)*)(?=(\[unreleased\]|(## \[\d\.\d\.\d\])))');
final match = regex.firstMatch(content);
if (match != null) {
final changelogContent = match.namedGroup("content");
if (changelogContent != null) {
return changelogContent;
}
}
return "### Failed to parse info";
}
}