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