mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-09-08 15:20:36 +02:00
Sync against taskchampion-sync-server (#3118)
This removes use of gnutls and the TLS implementation, which is no longer needed (task synchronization is handled via Taskchampion, which uses `reqwest`, which handles TLS via other Rust dependencies). This incidentally removes the following config options: * `debug.tls` * `taskd.ca` * `taskd.certificate` * `taskd.ciphers` * `taskd.credentials` * `taskd.key` * `taskd.server` * `taskd.trust`
This commit is contained in:
parent
771977aa69
commit
31105c2ba3
57 changed files with 403 additions and 1615 deletions
|
@ -39,10 +39,6 @@
|
|||
#include <commit.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LIBGNUTLS
|
||||
#include <gnutls/gnutls.h>
|
||||
#endif
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
CmdDiagnostics::CmdDiagnostics ()
|
||||
{
|
||||
|
@ -135,18 +131,6 @@ int CmdDiagnostics::execute (std::string& output)
|
|||
#endif
|
||||
<< '\n';
|
||||
|
||||
out << " libgnutls: "
|
||||
#ifdef HAVE_LIBGNUTLS
|
||||
#ifdef GNUTLS_VERSION
|
||||
<< GNUTLS_VERSION
|
||||
#elif defined LIBGNUTLS_VERSION
|
||||
<< LIBGNUTLS_VERSION
|
||||
#endif
|
||||
#else
|
||||
<< "n/a"
|
||||
#endif
|
||||
<< '\n';
|
||||
|
||||
out << " Build type: "
|
||||
#ifdef CMAKE_BUILD_TYPE
|
||||
<< CMAKE_BUILD_TYPE
|
||||
|
@ -214,82 +198,6 @@ int CmdDiagnostics::execute (std::string& output)
|
|||
else if ((peditor = getenv ("EDITOR")) != nullptr)
|
||||
out << " $EDITOR: " << peditor << '\n';
|
||||
|
||||
out << " Server: "
|
||||
<< Context::getContext ().config.get ("taskd.server")
|
||||
<< '\n';
|
||||
|
||||
auto ca_pem = Context::getContext ().config.get ("taskd.ca");
|
||||
out << " CA: ";
|
||||
if (ca_pem != "")
|
||||
{
|
||||
File file_ca (ca_pem);
|
||||
if (file_ca.exists ())
|
||||
out << ca_pem
|
||||
<< (file_ca.readable () ? ", readable, " : ", not readable, ")
|
||||
<< file_ca.size ()
|
||||
<< " bytes\n";
|
||||
else
|
||||
out << "not found\n";
|
||||
}
|
||||
else
|
||||
out << "-\n";
|
||||
|
||||
auto cert_pem = Context::getContext ().config.get ("taskd.certificate");
|
||||
out << "Certificate: ";
|
||||
if (cert_pem != "")
|
||||
{
|
||||
File file_cert (cert_pem);
|
||||
if (file_cert.exists ())
|
||||
out << cert_pem
|
||||
<< (file_cert.readable () ? ", readable, " : ", not readable, ")
|
||||
<< file_cert.size ()
|
||||
<< " bytes\n";
|
||||
else
|
||||
out << "not found\n";
|
||||
}
|
||||
else
|
||||
out << "-\n";
|
||||
|
||||
auto key_pem = Context::getContext ().config.get ("taskd.key");
|
||||
out << " Key: ";
|
||||
if (key_pem != "")
|
||||
{
|
||||
File file_key (key_pem);
|
||||
if (file_key.exists ())
|
||||
out << key_pem
|
||||
<< (file_key.readable () ? ", readable, " : ", not readable, ")
|
||||
<< file_key.size ()
|
||||
<< " bytes\n";
|
||||
else
|
||||
out << "not found\n";
|
||||
}
|
||||
else
|
||||
out << "-\n";
|
||||
|
||||
auto trust_value = Context::getContext ().config.get ("taskd.trust");
|
||||
if (trust_value == "strict" ||
|
||||
trust_value == "ignore hostname" ||
|
||||
trust_value == "allow all")
|
||||
out << " Trust: " << trust_value << '\n';
|
||||
else
|
||||
out << " Trust: Bad value - see 'man taskrc'\n";
|
||||
|
||||
out << " Ciphers: "
|
||||
<< Context::getContext ().config.get ("taskd.ciphers")
|
||||
<< '\n';
|
||||
|
||||
// Get credentials, but mask out the key.
|
||||
auto credentials = Context::getContext ().config.get ("taskd.credentials");
|
||||
auto last_slash = credentials.rfind ('/');
|
||||
if (last_slash != std::string::npos)
|
||||
credentials = credentials.substr (0, last_slash)
|
||||
+ '/'
|
||||
+ std::string (credentials.length () - last_slash - 1, '*');
|
||||
|
||||
out << " Creds: "
|
||||
<< credentials
|
||||
<< "\n\n";
|
||||
|
||||
// Display hook status.
|
||||
Path hookLocation;
|
||||
if (Context::getContext ().config.has ("hooks.location"))
|
||||
|
|
|
@ -145,7 +145,6 @@ int CmdShow::execute (std::string& output)
|
|||
" debug"
|
||||
" debug.hooks"
|
||||
" debug.parser"
|
||||
" debug.tls"
|
||||
" default.command"
|
||||
" default.due"
|
||||
" default.project"
|
||||
|
@ -193,14 +192,11 @@ int CmdShow::execute (std::string& output)
|
|||
" search.case.sensitive"
|
||||
" sugar"
|
||||
" summary.all.projects"
|
||||
" sync.local.server_dir"
|
||||
" sync.server.client_key"
|
||||
" sync.server.encryption_secret"
|
||||
" sync.server.origin"
|
||||
" tag.indicator"
|
||||
" taskd.server"
|
||||
" taskd.ca"
|
||||
" taskd.certificate"
|
||||
" taskd.ciphers"
|
||||
" taskd.credentials"
|
||||
" taskd.key"
|
||||
" taskd.trust"
|
||||
" undo.style"
|
||||
" urgency.active.coefficient"
|
||||
" urgency.scheduled.coefficient"
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include <shared.h>
|
||||
#include <format.h>
|
||||
#include <util.h>
|
||||
#include "tc/Server.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
CmdSync::CmdSync ()
|
||||
|
@ -53,10 +54,37 @@ CmdSync::CmdSync ()
|
|||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
int CmdSync::execute (std::string&)
|
||||
int CmdSync::execute (std::string& output)
|
||||
{
|
||||
throw std::string ("Sync support is disabled during transition to TaskChampion.");
|
||||
return 0;
|
||||
int status = 0;
|
||||
|
||||
tc::Server server;
|
||||
std::string server_ident;
|
||||
|
||||
// If no server is set up, quit.
|
||||
std::string origin = Context::getContext ().config.get ("sync.server.origin");
|
||||
std::string client_key = Context::getContext ().config.get ("sync.server.client_key");
|
||||
std::string encryption_secret = Context::getContext ().config.get ("sync.server.encryption_secret");
|
||||
std::string server_dir = Context::getContext ().config.get ("sync.local.server_dir");
|
||||
if (server_dir != "") {
|
||||
server = tc::Server (server_dir);
|
||||
server_ident = server_dir;
|
||||
} else if (origin != "" && client_key != "" && encryption_secret != "") {
|
||||
server = tc::Server (origin, client_key, encryption_secret);
|
||||
server_ident = origin;
|
||||
} else {
|
||||
throw std::string ("Neither sync.server nor sync.local are configured.");
|
||||
}
|
||||
|
||||
std::stringstream out;
|
||||
if (Context::getContext ().verbose ("sync"))
|
||||
out << format ("Syncing with {1}", server_ident)
|
||||
<< '\n';
|
||||
|
||||
Context::getContext ().tdb2.sync(std::move(server), false);
|
||||
|
||||
output = out.str ();
|
||||
return status;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -30,18 +30,12 @@
|
|||
#include <string>
|
||||
#include <Command.h>
|
||||
#include <Msg.h>
|
||||
#include <TLSClient.h>
|
||||
|
||||
class CmdSync : public Command
|
||||
{
|
||||
public:
|
||||
CmdSync ();
|
||||
int execute (std::string&);
|
||||
|
||||
#ifdef HAVE_LIBGNUTLS
|
||||
private:
|
||||
bool send (const std::string&, const std::string&, const std::string&, const std::string&, const enum TLSClient::trust_level, const Msg&, Msg&);
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue