aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/utils
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/utils')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java30
1 files changed, 28 insertions, 2 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java
index 1ff90436..1c238f95 100644
--- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java
+++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java
@@ -2,13 +2,18 @@ package com.zeapo.pwdstore.utils;
import org.apache.commons.io.FileUtils;
import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
+import org.eclipse.jgit.transport.RefSpec;
+import org.eclipse.jgit.transport.RemoteConfig;
+import org.eclipse.jgit.transport.URIish;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Set;
import static java.util.Collections.sort;
@@ -56,9 +61,30 @@ public class PasswordRepository {
}
}
- // TODO add remote branch
- public static void addRemote() {
+ // TODO add remote edition later-on
+ // TODO add multiple remotes support for pull/push
+ public static void addRemote(String name, String url) {
+ StoredConfig storedConfig = repository.getConfig();
+ Set<String> remotes = storedConfig.getSubsections("remote");
+ if (!remotes.contains(name)) {
+ try {
+ URIish uri = new URIish(url);
+ RefSpec refSpec = new RefSpec("+refs/head/*:refs/remotes/"+ name + "/*");
+
+ RemoteConfig remoteConfig = new RemoteConfig(storedConfig, name);
+ remoteConfig.addFetchRefSpec(refSpec);
+ remoteConfig.addPushRefSpec(refSpec);
+ remoteConfig.addURI(uri);
+ remoteConfig.addPushURI(uri);
+
+ remoteConfig.update(storedConfig);
+
+ storedConfig.save();
+ } catch (Exception e) {
+
+ }
+ }
}
public static void closeRepository() {