mirror of https://github.com/kiwix/libkiwix.git
Add a way to specify a library to use with kiwix-serve.
If kiwix-desktop use a `library.xml` in the same directory than the executable, we need to use it instead of the default one. Instead of detect again the `library.xml` to use, let `kiwix-desktop` set the library to use. This also fix a issue when `/` is not a valid path separator in windows.
This commit is contained in:
parent
d90774450d
commit
e42e061d45
|
@ -2,6 +2,7 @@
|
||||||
#define KIWIXLIB_KIWIX_SERVE_H_
|
#define KIWIXLIB_KIWIX_SERVE_H_
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class Subprocess;
|
class Subprocess;
|
||||||
namespace kiwix {
|
namespace kiwix {
|
||||||
|
@ -9,7 +10,7 @@ namespace kiwix {
|
||||||
class KiwixServe
|
class KiwixServe
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
KiwixServe(int port = 8181);
|
KiwixServe(const std::string& libraryPath, int port = 8181);
|
||||||
~KiwixServe();
|
~KiwixServe();
|
||||||
|
|
||||||
void run();
|
void run();
|
||||||
|
@ -20,6 +21,7 @@ class KiwixServe
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<Subprocess> mp_kiwixServe;
|
std::unique_ptr<Subprocess> mp_kiwixServe;
|
||||||
int m_port;
|
int m_port;
|
||||||
|
std::string m_libraryPath;
|
||||||
};
|
};
|
||||||
|
|
||||||
}; //end namespace kiwix
|
}; //end namespace kiwix
|
||||||
|
|
|
@ -14,7 +14,9 @@
|
||||||
|
|
||||||
namespace kiwix {
|
namespace kiwix {
|
||||||
|
|
||||||
KiwixServe::KiwixServe(int port) : m_port(port)
|
KiwixServe::KiwixServe(const std::string& libraryPath, int port)
|
||||||
|
: m_port(port),
|
||||||
|
m_libraryPath(libraryPath)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,13 +45,12 @@ void KiwixServe::run()
|
||||||
// Try to use a potential installed kiwix-serve.
|
// Try to use a potential installed kiwix-serve.
|
||||||
callCmd.push_back(KIWIXSERVE_CMD);
|
callCmd.push_back(KIWIXSERVE_CMD);
|
||||||
}
|
}
|
||||||
std::string libraryPath = getDataDirectory() + "/library.xml";
|
|
||||||
std::string attachProcessOpt = "-a" + to_string(pid);
|
std::string attachProcessOpt = "-a" + to_string(pid);
|
||||||
std::string portOpt = "-p" + to_string(m_port);
|
std::string portOpt = "-p" + to_string(m_port);
|
||||||
callCmd.push_back(attachProcessOpt.c_str());
|
callCmd.push_back(attachProcessOpt.c_str());
|
||||||
callCmd.push_back(portOpt.c_str());
|
callCmd.push_back(portOpt.c_str());
|
||||||
callCmd.push_back("-l");
|
callCmd.push_back("-l");
|
||||||
callCmd.push_back(libraryPath.c_str());
|
callCmd.push_back(m_libraryPath.c_str());
|
||||||
mp_kiwixServe = Subprocess::run(callCmd);
|
mp_kiwixServe = Subprocess::run(callCmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue