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