aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/git/CloneOperation.java
blob: 3c5c20c65ecbaa445334352b0348e41f95dc5278 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.zeapo.pwdstore.git;

import android.app.Activity;

import org.eclipse.jgit.api.CloneCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;

import java.io.File;

public class CloneOperation extends GitOperation {
    private static final String TAG = "CLONEOPT";

    /**
     * Creates a new clone operation
     * @param fileDir the git working tree directory
     * @param callingActivity the calling activity
     */
    public CloneOperation(File fileDir, Activity callingActivity) {
        super(fileDir, callingActivity);
    }

    /**
     * Sets the command using the repository uri
     * @param uri the uri of the repository
     * @return the current object
     */
    public CloneOperation setCommand(String uri) {
        this.command = Git.cloneRepository().
                setCredentialsProvider(provider).
                setCloneAllBranches(true).
                setDirectory(repository.getWorkTree()).
                setURI(uri);
        return this;
    }

    /**
     * sets the authentication for user/pwd scheme
     * @param username the username
     * @param password the password
     * @return the current object
     */
    @Override
    public CloneOperation setAuthentication(String username, String password) {
        super.setAuthentication(username, password);
        return this;
    }

    /**
     * sets the authentication for the ssh-key scheme
     * @param sshKey     the ssh-key file
     * @param username   the username
     * @param passphrase the passphrase
     * @return the current object
     */
    @Override
    public CloneOperation setAuthentication(File sshKey, String username, String passphrase) {
        super.setAuthentication(sshKey, username, passphrase);
        return this;
    }
}