update app_data_manager and add claude config
This commit is contained in:
parent
be1b139c25
commit
33bd6ee57f
2 changed files with 53 additions and 65 deletions
9
.claude/settings.json
Normal file
9
.claude/settings.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Read(//config/workspace/agentic-framework/**)",
|
||||
"Bash(bash agent-ops/bin/sync.sh agentic-framework)",
|
||||
"Bash(git commit -m ' *)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:oto_cli/framework/log/log.dart';
|
||||
import 'package:oto_cli/framework/platform/process.dart';
|
||||
import 'package:oto_cli/framework/model/app_data.dart';
|
||||
import 'package:oto_cli/framework/utils/system_util.dart';
|
||||
|
||||
enum SCMType { Svn, Git }
|
||||
|
||||
|
|
@ -22,8 +21,7 @@ class AppDataManager {
|
|||
_scm = scm;
|
||||
_workspace = workspace;
|
||||
_relativeAssetPath = relativeAssetPath;
|
||||
var c = Completer<AppData>();
|
||||
var appData = AppData();
|
||||
final appData = AppData();
|
||||
appData.name = name;
|
||||
appData.gitCount = await gitCount();
|
||||
appData.version = await getVersion();
|
||||
|
|
@ -32,95 +30,76 @@ class AppDataManager {
|
|||
appData.gitHash = await getHash();
|
||||
}
|
||||
await createFile(jsonEncode(appData.toJson()));
|
||||
c.complete(appData);
|
||||
return c.future;
|
||||
return appData;
|
||||
}
|
||||
|
||||
Future<int> gitCount() async {
|
||||
var shell = StringBuffer();
|
||||
shell.writeln('git rev-list --all HEAD --all --count');
|
||||
var process = await ProcessExecutor.start(shell, workspace: _workspace);
|
||||
final shell = StringBuffer()..writeln('git rev-list --all HEAD --all --count');
|
||||
final process = await ProcessExecutor.start(shell, workspace: _workspace);
|
||||
await process.waitForExit();
|
||||
return dataFutrue(int.parse(process.stdoutArr.last));
|
||||
return int.parse(process.stdoutArr.last);
|
||||
}
|
||||
|
||||
Future<String> getVersion() async {
|
||||
var c = Completer<String>();
|
||||
var number = 0;
|
||||
var shell = StringBuffer();
|
||||
switch (_scm) {
|
||||
case SCMType.Svn:
|
||||
break;
|
||||
case SCMType.Git:
|
||||
shell.writeln('git rev-list --all HEAD --all --count');
|
||||
var process = await ProcessExecutor.start(shell, workspace: _workspace);
|
||||
await process.waitForExit();
|
||||
number = int.parse(process.stdoutArr.last);
|
||||
break;
|
||||
if (_scm == SCMType.Git) {
|
||||
final shell = StringBuffer()..writeln('git rev-list --all HEAD --all --count');
|
||||
final process = await ProcessExecutor.start(shell, workspace: _workspace);
|
||||
await process.waitForExit();
|
||||
number = int.parse(process.stdoutArr.last);
|
||||
}
|
||||
final version = numberToVersion(number);
|
||||
log('#### Version: $version');
|
||||
return version;
|
||||
}
|
||||
|
||||
var version = numberToVersion(number);
|
||||
print('#### Version: $version');
|
||||
c.complete(version);
|
||||
return c.future;
|
||||
Future<String> getHash() async {
|
||||
final shell = StringBuffer()..writeln('git rev-parse HEAD');
|
||||
final process = await ProcessExecutor.start(shell, workspace: _workspace);
|
||||
await process.waitForExit();
|
||||
final hash = process.stdoutArr.last;
|
||||
log('#### Git Hash: $hash');
|
||||
return hash;
|
||||
}
|
||||
|
||||
String getBuildTime() {
|
||||
final date = DateTime.now().toString();
|
||||
final result = date.substring(0, date.lastIndexOf('.'));
|
||||
log('#### Build Date: $result');
|
||||
return result;
|
||||
}
|
||||
|
||||
Future<void> createFile(String json) async {
|
||||
final dir = Directory('$_workspace/$_relativeAssetPath');
|
||||
if (!dir.existsSync()) dir.createSync(recursive: true);
|
||||
await File('$_workspace/$_relativeAssetPath/app_data.json').writeAsString(json);
|
||||
}
|
||||
|
||||
String numberToVersion(int number, {int masterVersion = 0}) {
|
||||
var arr = number.toString().split('');
|
||||
var length = arr.length;
|
||||
final arr = number.toString().split('');
|
||||
final length = arr.length;
|
||||
var ver = '';
|
||||
var versionList = <int>[];
|
||||
final versionList = <int>[];
|
||||
for (int i = 0; i < length; ++i) {
|
||||
if (i != 0 && i % 3 == 0) {
|
||||
versionList.add(int.parse(ver));
|
||||
ver = '';
|
||||
}
|
||||
ver = arr[length - (i + 1)].toString() + ver;
|
||||
ver = arr[length - (i + 1)] + ver;
|
||||
}
|
||||
if (ver != '') versionList.add(int.parse(ver));
|
||||
|
||||
ver = '';
|
||||
length = 3;
|
||||
var list = <String>['0', '0', '0'];
|
||||
for (int i = 0; i < length; ++i) {
|
||||
var versionValue = versionList.length <= i ? 0 : versionList[i];
|
||||
var versionStr = i == 2
|
||||
final list = <String>['0', '0', '0'];
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
final versionValue = versionList.length <= i ? 0 : versionList[i];
|
||||
list[2 - i] = i == 2
|
||||
? (versionValue + masterVersion).toString()
|
||||
: versionValue.toString();
|
||||
list[length - (i + 1)] = versionStr;
|
||||
}
|
||||
return list.join('.');
|
||||
}
|
||||
|
||||
double versionToNumber(String version) {
|
||||
var value = version.replaceAll('.', '');
|
||||
return double.parse(value);
|
||||
}
|
||||
|
||||
Future<String> getHash() async {
|
||||
var shell = StringBuffer();
|
||||
shell.writeln('git rev-parse HEAD');
|
||||
var process = await ProcessExecutor.start(shell, workspace: _workspace);
|
||||
await process.waitForExit();
|
||||
var hash = process.stdoutArr.last;
|
||||
print('#### Git Hash: $hash');
|
||||
return dataFutrue(hash);
|
||||
}
|
||||
|
||||
String getBuildTime() {
|
||||
var date = DateTime.now().toString();
|
||||
date = date.substring(0, date.lastIndexOf('.'));
|
||||
print('#### Build Date: $date');
|
||||
return date;
|
||||
}
|
||||
|
||||
Future createFile(String json) async {
|
||||
var c = Completer();
|
||||
var dir = Directory('$_workspace/$_relativeAssetPath');
|
||||
if (!dir.existsSync()) dir.createSync(recursive: true);
|
||||
var file = File('$_workspace/$_relativeAssetPath/app_data.json');
|
||||
await file.writeAsString(json);
|
||||
c.complete();
|
||||
return c.future;
|
||||
return double.parse(version.replaceAll('.', ''));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue