diff options
| author | knuthy <knuthy@gmail.com> | 2014-08-10 19:39:55 +0100 |
|---|---|---|
| committer | knuthy <knuthy@gmail.com> | 2014-08-10 19:39:55 +0100 |
| commit | 2ec3047e180121cebe86415165ab378bab28c08c (patch) | |
| tree | 703e92e6c2b2fd280983386632cff8e702744ba5 /app/src/main/java/com/zeapo/pwdstore/utils | |
| parent | bee81ba5f2e13ea4deb910d7f550681c88a1bcc1 (diff) | |
| download | HardenedPass-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.java | 30 |
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() { |
