From 3ca41de3333f47071289b6398a3f8c677dbdab89 Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Wed, 7 Sep 2016 12:26:57 -0400 Subject: Add the backend class/functions for using GIT within lumina-fm. --- src-qt5/desktop-utils/lumina-fm/gitCompat.h | 60 +++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src-qt5/desktop-utils/lumina-fm/gitCompat.h (limited to 'src-qt5/desktop-utils') diff --git a/src-qt5/desktop-utils/lumina-fm/gitCompat.h b/src-qt5/desktop-utils/lumina-fm/gitCompat.h new file mode 100644 index 00000000..6578bd5b --- /dev/null +++ b/src-qt5/desktop-utils/lumina-fm/gitCompat.h @@ -0,0 +1,60 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2016, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This is the backend classe for interacting with the "git" utility +//=========================================== +#ifdef _LUMINA_FM_GIT_COMPAT_H +#define _LUMINA_FM_GIT_COMPAT_H + +#include +#include +#include + +#include + +class GIT{ +public: + //Check if the git utility is installed and available + static bool isAvailable(){ + QString bin = "git" + return isValidBinary(bin); + } + + //Return if the current directory is a git repository + static bool isRepo(QString dir){ + QProcess P; + P.setProcessEnvironment(QProcessEnvironment::systemEnvironment()); + P.setWorkingDirectory(dir); + P.exec("git",QStringList() <<"status" << "--porcelain" ); + return (0==P.exitCode()); + } + + //Return the current status of the repository + static QString status(QString dir){ + QProcess P; + P.setProcessEnvironment(QProcessEnvironment::systemEnvironment()); + P.setWorkingDirectory(dir); + P.setProcessChannelMode(QProcess::MergedChannels); + P.exec("git",QStringList() <<"status" ); + return P.readAllStandardOutput(); + } + + //Setup a process for running the clone operation (so the calling process can hook up any watchers and start it when ready) + static QProcess setupClone(QString indir, QString url, QString branch = "", int depth = -1){ + QProcess P; + P.setProcessEnvironment( QProcessEnvironment::systemEnvironment() ); + P.setWorkingDirectory(indir); + P.setProgram("git"); + QStringList args; + args << "clone"; + if(!branch.isEmpty()){ args << "-b" << branch; } + if(depth>0){ args << "--depth" << QString::number(depth); } + args << url; + P.setArguments(args); + return P; + } +}; +#endif -- cgit