Files
GitJournal/lib/apis/git_migration.dart
Vishesh Handa 7d380e1ea2 GitMigration: Change commit message
Lets keep it as 'Added Journal Entry', as this way it isn't obvious
that'we loosing the history of the changes when moving from the local to
the remote repo.

Implementing proper migration would take me hours, and its not a
priority right now.
2019-02-15 00:24:51 +01:00

47 lines
1.4 KiB
Dart

import 'dart:async';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:journal/apis/git.dart';
import 'package:journal/settings.dart';
import 'package:path/path.dart' as p;
//
// FIXME: This isn't ideal as we are skipping all the edits / deletes
//
Future migrateGitRepo({
@required String gitBasePath,
@required String fromGitBasePath,
@required String toGitBaseFolder,
@required String toGitBaseSubFolder,
}) async {
print(
"migrateGitRepo $fromGitBasePath $toGitBaseFolder / $toGitBaseSubFolder");
var fromBasePath = p.join(gitBasePath, fromGitBasePath);
var toGitRepoPath = p.join(gitBasePath, toGitBaseFolder, toGitBaseSubFolder);
print("toGitRemotePath $toGitRepoPath");
final dir = Directory(fromBasePath);
var lister = dir.list(recursive: false);
await for (var fileEntity in lister) {
if (fileEntity is! File) {
continue;
}
File file = fileEntity;
var fileName = p.basename(file.path);
var toPath = p.join(toGitRepoPath, fileName);
print("Migrating " + file.path + " --> " + toPath);
await file.copy(toPath);
await gitAdd(toGitBaseFolder, fileName);
await gitCommit(
gitFolder: toGitBaseFolder,
authorEmail: Settings.instance.gitAuthorEmail,
authorName: Settings.instance.gitAuthor,
message: "Added Journal Entry",
);
}
print("migrateGitRepo: Done");
}