aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/utils
diff options
context:
space:
mode:
authorknuthy <knuthy@gmail.com>2014-08-10 19:39:55 +0100
committerknuthy <knuthy@gmail.com>2014-08-10 19:39:55 +0100
commit2ec3047e180121cebe86415165ab378bab28c08c (patch)
tree703e92e6c2b2fd280983386632cff8e702744ba5 /app/src/main/java/com/zeapo/pwdstore/utils
parentbee81ba5f2e13ea4deb910d7f550681c88a1bcc1 (diff)
downloadHardenedPass-2ec3047e180121cebe86415165ab378bab28c08c.tar.gz
HardenedPass-2ec3047e180121cebe86415165ab378bab28c08c.zip
added possibility to pull and push after having initialized a repository
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() {