Guitar
GitCommandRunner.h
Go to the documentation of this file.
1 
2 #ifndef GITCOMMANDRUNNER_H
3 #define GITCOMMANDRUNNER_H
4 
5 #include "GitCloneData.h"
6 #include "GitRunner.h"
7 #include <QElapsedTimer>
8 #include <QVariant>
9 
10 class Git_clone {
11 public:
13  Git_clone(const GitCloneData &clonedata)
14  : clonedata_(clonedata)
15  {
16  }
17 };
18 
19 class Git_fetch {
20 public:
21  bool prune;
23  : prune(prune)
24  {
25  }
26 };
27 
28 class Git_stage {
29 public:
30  std::vector<std::string> paths;
31  Git_stage(std::vector<std::string> const &paths)
32  : paths(paths)
33  {
34  }
35 };
36 
37 class Git_push {
38 public:
39  bool set_upstream_ = false;
40  std::string remote_;
41  std::string branch_;
42  bool force_ = false;
43  int exitcode_ = 0;
44  std::string errormsg_;
45  Git_push(bool set_upstream, std::string const &remote, std::string const &branch, bool force)
46  : set_upstream_(set_upstream)
47  , remote_(remote)
48  , branch_(branch)
49  , force_(force)
50  {
51  }
52 };
53 
54 class Git_pull {
55 public:
57  {
58  }
59 };
60 
62 public:
64  {
65  }
66 };
67 
69 public:
70  std::string name_;
71  bool remote_;
72  Git_delete_tag(std::string const &name, bool remote)
73  : name_(name)
74  , remote_(remote)
75  {
76  }
77 };
78 
80 public:
81  std::vector<std::string> tagnames;
82  Git_delete_tags(std::vector<std::string> const &tagnames)
84  {
85  }
86 };
87 
88 class Git_add_tag {
89 public:
90  std::string name_;
92  Git_add_tag(std::string const &name, const GitHash &commit_id)
93  : name_(name)
94  , commit_id_(commit_id)
95  {
96  }
97 };
98 
100 public:
102  bool force_ = false;
103  Git_submodule_add(GitCloneData const &data, bool force)
104  : data_(data)
105  , force_(force)
106  {
107  }
108 };
109 
111 public:
112  void operator () (Git_clone const &item);
113  void operator () (Git_fetch const &item);
114  void operator () (Git_stage const &item);
115  void operator () (Git_push const &item);
116  void operator () (Git_pull const &item);
117  void operator () (Git_push_tags const &item);
118  void operator () (Git_delete_tag const &item);
119  void operator () (Git_delete_tags const &item);
120  void operator () (Git_add_tag const &item);
121  void operator () (Git_submodule_add const &item);
122 
123  typedef std::variant<
124  Git_clone,
125  Git_fetch,
126  Git_stage,
127  Git_push,
128  Git_pull,
132  Git_add_tag,
135 
136  typedef unsigned int request_id_t;
137 
138  struct D {
142  bool override_wait_cursor = true;
143  std::function<void (GitCommandRunner &req)> run;
144  QVariant userdata;
145  bool update_commit_log = false;
146  bool result = false;
147  QString process_name;
148  QElapsedTimer elapsed;
149  } d;
150 
152  {
153  return d.g;
154  }
156  {
157  return d.pty;
158  }
159  std::string pty_message() const;
160  AbstractPtyProcess const *pty() const
161  {
162  return d.pty;
163  }
164  std::function<void (ProcessStatus *status, QVariant const &)> callback;
165 };
166 Q_DECLARE_METATYPE(GitCommandRunner)
167 
168 #endif // GITCOMMANDRUNNER_H
Definition: AbstractProcess.h:71
Definition: GitCommandRunner.h:110
struct GitCommandRunner::D d
std::string pty_message() const
Definition: GitCommandRunner.cpp:6
AbstractPtyProcess const * pty() const
Definition: GitCommandRunner.h:160
GitRunner git()
Definition: GitCommandRunner.h:151
std::variant< Git_clone, Git_fetch, Git_stage, Git_push, Git_pull, Git_push_tags, Git_delete_tag, Git_delete_tags, Git_add_tag, Git_submodule_add > variant_t
Definition: GitCommandRunner.h:134
void operator()(Git_clone const &item)
Definition: GitCommandRunner.cpp:11
AbstractPtyProcess * pty()
Definition: GitCommandRunner.h:155
unsigned int request_id_t
Definition: GitCommandRunner.h:136
std::function< void(ProcessStatus *status, QVariant const &)> callback
Definition: GitCommandRunner.h:164
Definition: GitHash.h:9
Definition: GitRunner.h:21
Definition: GitCommandRunner.h:88
Git_add_tag(std::string const &name, const GitHash &commit_id)
Definition: GitCommandRunner.h:92
GitHash commit_id_
Definition: GitCommandRunner.h:91
std::string name_
Definition: GitCommandRunner.h:90
Definition: GitCommandRunner.h:10
Git_clone(const GitCloneData &clonedata)
Definition: GitCommandRunner.h:13
GitCloneData clonedata_
Definition: GitCommandRunner.h:12
Definition: GitCommandRunner.h:68
bool remote_
Definition: GitCommandRunner.h:71
std::string name_
Definition: GitCommandRunner.h:70
Git_delete_tag(std::string const &name, bool remote)
Definition: GitCommandRunner.h:72
Definition: GitCommandRunner.h:79
std::vector< std::string > tagnames
Definition: GitCommandRunner.h:81
Git_delete_tags(std::vector< std::string > const &tagnames)
Definition: GitCommandRunner.h:82
Definition: GitCommandRunner.h:19
Git_fetch(bool prune)
Definition: GitCommandRunner.h:22
bool prune
Definition: GitCommandRunner.h:21
Definition: GitCommandRunner.h:54
Git_pull()
Definition: GitCommandRunner.h:56
Definition: GitCommandRunner.h:61
Git_push_tags()
Definition: GitCommandRunner.h:63
Definition: GitCommandRunner.h:37
std::string remote_
Definition: GitCommandRunner.h:40
bool force_
Definition: GitCommandRunner.h:42
bool set_upstream_
Definition: GitCommandRunner.h:39
std::string errormsg_
Definition: GitCommandRunner.h:44
int exitcode_
Definition: GitCommandRunner.h:43
Git_push(bool set_upstream, std::string const &remote, std::string const &branch, bool force)
Definition: GitCommandRunner.h:45
std::string branch_
Definition: GitCommandRunner.h:41
Definition: GitCommandRunner.h:28
std::vector< std::string > paths
Definition: GitCommandRunner.h:30
Git_stage(std::vector< std::string > const &paths)
Definition: GitCommandRunner.h:31
Definition: GitCommandRunner.h:99
GitCloneData data_
Definition: GitCommandRunner.h:101
Git_submodule_add(GitCloneData const &data, bool force)
Definition: GitCommandRunner.h:103
bool force_
Definition: GitCommandRunner.h:102
Definition: ProcessStatus.h:9
Definition: GitCloneData.h:7
Definition: GitCommandRunner.h:138
bool result
Definition: GitCommandRunner.h:146
request_id_t request_id
Definition: GitCommandRunner.h:141
QVariant userdata
Definition: GitCommandRunner.h:144
bool update_commit_log
Definition: GitCommandRunner.h:145
QElapsedTimer elapsed
Definition: GitCommandRunner.h:148
std::function< void(GitCommandRunner &req)> run
Definition: GitCommandRunner.h:143
AbstractPtyProcess * pty
Definition: GitCommandRunner.h:140
GitRunner g
Definition: GitCommandRunner.h:139
QString process_name
Definition: GitCommandRunner.h:147
bool override_wait_cursor
Definition: GitCommandRunner.h:142