git stash success 판별 추가
This commit is contained in:
parent
d232c4e23a
commit
8f51c57df2
4 changed files with 35 additions and 51 deletions
|
|
@ -22,55 +22,42 @@ class FileDiffCheck extends Command {
|
|||
var fileName = getUniqueFileName(data.paths.join(';'));
|
||||
|
||||
var tempDir = Directory.systemTemp;
|
||||
var cacheFolder = Directory('${tempDir.path}/oto/${getUniqueFileName(currentDir.path)}');
|
||||
if(!cacheFolder.existsSync())
|
||||
{
|
||||
var cacheFolder =
|
||||
Directory('${tempDir.path}/oto/${getUniqueFileName(currentDir.path)}');
|
||||
if (!cacheFolder.existsSync()) {
|
||||
cacheFolder.createSync(recursive: true);
|
||||
}
|
||||
var cacheFile = File('${cacheFolder.path}/$fileName');
|
||||
var paths = data.paths;
|
||||
print('Cache Path: ${cacheFile.path}, Exist: ${cacheFile.existsSync()}');
|
||||
|
||||
if(paths.isEmpty)
|
||||
{
|
||||
if (paths.isEmpty) {
|
||||
throw Exception('The paths is Empty.');
|
||||
}
|
||||
else
|
||||
{
|
||||
if(cacheFile.existsSync())
|
||||
{
|
||||
var cachedMap = jsonDecode(cacheFile.readAsStringSync()) as Map<String, dynamic>;
|
||||
} else {
|
||||
if (cacheFile.existsSync()) {
|
||||
var cachedMap =
|
||||
jsonDecode(cacheFile.readAsStringSync()) as Map<String, dynamic>;
|
||||
var filesHashMap = await getFilesHashMap(paths);
|
||||
if(cachedMap.length == filesHashMap.length)
|
||||
{
|
||||
for(var pair in filesHashMap.entries)
|
||||
{
|
||||
if(cachedMap.containsKey(pair.key))
|
||||
{
|
||||
if (cachedMap.length == filesHashMap.length) {
|
||||
for (var pair in filesHashMap.entries) {
|
||||
if (cachedMap.containsKey(pair.key)) {
|
||||
var cachedHash = cachedMap[pair.key];
|
||||
if(cachedHash != pair.value)
|
||||
{
|
||||
if (cachedHash != pair.value) {
|
||||
await saveDiffData(cacheFile, paths);
|
||||
diff = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
await saveDiffData(cacheFile, paths);
|
||||
diff = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
await saveDiffData(cacheFile, paths);
|
||||
diff = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
await saveDiffData(cacheFile, paths);
|
||||
diff = true;
|
||||
}
|
||||
|
|
@ -80,41 +67,33 @@ class FileDiffCheck extends Command {
|
|||
return await complete(exitCode, command);
|
||||
}
|
||||
|
||||
Future saveDiffData(File cacheFile, List<String> paths) async
|
||||
{
|
||||
Future saveDiffData(File cacheFile, List<String> paths) async {
|
||||
var cachedMap = await getFilesHashMap(paths);
|
||||
var jsonString = jsonEncode(cachedMap);
|
||||
await cacheFile.writeAsString(jsonString);
|
||||
return simpleFuture;
|
||||
}
|
||||
|
||||
String getUniqueFileName(String seed)
|
||||
{
|
||||
String getUniqueFileName(String seed) {
|
||||
var fileName = generateMd5(seed);
|
||||
if(fileName.length > 150)
|
||||
{
|
||||
if (fileName.length > 150) {
|
||||
fileName = fileName.substring(0, 150);
|
||||
}
|
||||
return fileName;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> getFilesHashMap(List<String> paths) async
|
||||
{
|
||||
Future<Map<String, dynamic>> getFilesHashMap(List<String> paths) async {
|
||||
var c = Completer<Map<String, dynamic>>();
|
||||
var cachedMap = <String, dynamic>{};
|
||||
for(var path in paths)
|
||||
{
|
||||
for (var path in paths) {
|
||||
var file = File(path);
|
||||
var type = file.statSync().type;
|
||||
switch(type)
|
||||
{
|
||||
switch (type) {
|
||||
case FileSystemEntityType.directory:
|
||||
var dir = Directory(path);
|
||||
var files = dir.listSync();
|
||||
for(var child in files)
|
||||
{
|
||||
if(child is File)
|
||||
{
|
||||
for (var child in files) {
|
||||
if (child is File) {
|
||||
await setCachedMapHash(cachedMap, File(child.path));
|
||||
}
|
||||
}
|
||||
|
|
@ -130,8 +109,7 @@ class FileDiffCheck extends Command {
|
|||
return c.future;
|
||||
}
|
||||
|
||||
Future setCachedMapHash(Map<String, dynamic> cachedMap, File file) async
|
||||
{
|
||||
Future setCachedMapHash(Map<String, dynamic> cachedMap, File file) async {
|
||||
cachedMap[file.path] = await FileHasher.hash(file);
|
||||
return simpleFuture;
|
||||
}
|
||||
|
|
@ -143,4 +121,4 @@ class FileDiffCheck extends Command {
|
|||
var digest = md5.convert(content);
|
||||
return hex.encode(digest.bytes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,9 +134,12 @@ class GitStashPush extends Command {
|
|||
: (data.includeUntracked! ? " -u" : "");
|
||||
var message = data.message == null ? "" : " -m '${data.message}'";
|
||||
shell.write(' && git stash push$includeUntracked$message');
|
||||
var process = await ProcessExecutor.start(shell, printStderr: false);
|
||||
|
||||
return await completeProcess(process, command);
|
||||
var process = await ProcessExecutor.run(shell);
|
||||
if (data.setSuccess != null) {
|
||||
setProperty(
|
||||
data.setSuccess!, process.stdout.toString().contains('Saved'));
|
||||
}
|
||||
return await complete(process.exitCode, command);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -658,6 +658,7 @@ class DataGitStashPush extends DataParam {
|
|||
|
||||
late bool? includeUntracked = true;
|
||||
late String? message;
|
||||
late String? setSuccess;
|
||||
|
||||
factory DataGitStashPush.fromJson(Map<String, dynamic> json) =>
|
||||
_$DataGitStashPushFromJson(json);
|
||||
|
|
|
|||
|
|
@ -1132,7 +1132,8 @@ DataGitStashPush _$DataGitStashPushFromJson(Map<String, dynamic> json) =>
|
|||
..setExitCode = json['setExitCode'] as String?
|
||||
..showPrint = json['showPrint'] as bool?
|
||||
..includeUntracked = json['includeUntracked'] as bool?
|
||||
..message = json['message'] as String?;
|
||||
..message = json['message'] as String?
|
||||
..setSuccess = json['setSuccess'] as String?;
|
||||
|
||||
Map<String, dynamic> _$DataGitStashPushToJson(DataGitStashPush instance) =>
|
||||
<String, dynamic>{
|
||||
|
|
@ -1143,6 +1144,7 @@ Map<String, dynamic> _$DataGitStashPushToJson(DataGitStashPush instance) =>
|
|||
'showPrint': instance.showPrint,
|
||||
'includeUntracked': instance.includeUntracked,
|
||||
'message': instance.message,
|
||||
'setSuccess': instance.setSuccess,
|
||||
};
|
||||
|
||||
DataGitStashApply _$DataGitStashApplyFromJson(Map<String, dynamic> json) =>
|
||||
|
|
|
|||
Loading…
Reference in a new issue