Define system specific default configuration directory to allow sharing most of the default configuration files contents
This commit is contained in:
parent
844b4e8b03
commit
265bbd0c6e
@ -58,6 +58,16 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
// Naming the directory for platform-specific default config files, overriding the top-level ones
|
||||||
|
// E.g. /usr/share/recoll/examples/windows
|
||||||
|
#ifdef _WIN32
|
||||||
|
static const string confsysdir{"windows"};
|
||||||
|
#elif defined(_APPLE__)
|
||||||
|
static const string confsysdir{"macos"};
|
||||||
|
#else
|
||||||
|
static const string confsysdir;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Static, logically const, RclConfig members or module static
|
// Static, logically const, RclConfig members or module static
|
||||||
// variables are initialized once from the first object build during
|
// variables are initialized once from the first object build during
|
||||||
// process initialization.
|
// process initialization.
|
||||||
@ -303,8 +313,15 @@ RclConfig::RclConfig(const string *argcnf)
|
|||||||
m_cdirs.push_back(cp);
|
m_cdirs.push_back(cp);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Base/installation config
|
// Base/installation config, and its platform-specific overrides
|
||||||
m_cdirs.push_back(path_cat(m_datadir, "examples"));
|
std::string defaultsdir = path_cat(m_datadir, "examples");
|
||||||
|
if (!confsysdir.empty()) {
|
||||||
|
std::string sdir = path_cat(defaultsdir, confsysdir);
|
||||||
|
if (path_isdir(sdir)) {
|
||||||
|
m_cdirs.push_back(sdir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_cdirs.push_back(defaultsdir);
|
||||||
|
|
||||||
string cnferrloc;
|
string cnferrloc;
|
||||||
for (const auto& dir : m_cdirs) {
|
for (const auto& dir : m_cdirs) {
|
||||||
@ -376,6 +393,7 @@ bool RclConfig::updateMainConfig()
|
|||||||
{
|
{
|
||||||
ConfStack<ConfTree> *newconf = new ConfStack<ConfTree>("recoll.conf", m_cdirs, true);
|
ConfStack<ConfTree> *newconf = new ConfStack<ConfTree>("recoll.conf", m_cdirs, true);
|
||||||
if (newconf == 0 || !newconf->ok()) {
|
if (newconf == 0 || !newconf->ok()) {
|
||||||
|
std::cerr << "updateMainConfig: new Confstack not ok\n";
|
||||||
if (m_conf)
|
if (m_conf)
|
||||||
return false;
|
return false;
|
||||||
m_ok = false;
|
m_ok = false;
|
||||||
|
|||||||
@ -125,8 +125,7 @@ public:
|
|||||||
* @param readonly if true open readonly, else rw
|
* @param readonly if true open readonly, else rw
|
||||||
* @param tildexp try tilde (home dir) expansion for subkey values
|
* @param tildexp try tilde (home dir) expansion for subkey values
|
||||||
*/
|
*/
|
||||||
ConfSimple(const char *fname, int readonly = 0, bool tildexp = false,
|
ConfSimple(const char *fname, int readonly = 0, bool tildexp = false, bool trimvalues = true);
|
||||||
bool trimvalues = true);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the object by reading content from a string
|
* Build the object by reading content from a string
|
||||||
@ -142,8 +141,7 @@ public:
|
|||||||
* @param readonly if true open read only, else rw
|
* @param readonly if true open read only, else rw
|
||||||
* @param tildexp try tilde (home dir) expansion for subsection names
|
* @param tildexp try tilde (home dir) expansion for subsection names
|
||||||
*/
|
*/
|
||||||
ConfSimple(int readonly = 0, bool tildexp = false,
|
ConfSimple(int readonly = 0, bool tildexp = false, bool trimvalues = true);
|
||||||
bool trimvalues = true);
|
|
||||||
|
|
||||||
virtual ~ConfSimple() {};
|
virtual ~ConfSimple() {};
|
||||||
|
|
||||||
@ -184,8 +182,7 @@ public:
|
|||||||
* Set value for named integer parameter in specified subsection (or global)
|
* Set value for named integer parameter in specified subsection (or global)
|
||||||
* @return 0 for error, 1 else
|
* @return 0 for error, 1 else
|
||||||
*/
|
*/
|
||||||
virtual int set(const std::string& nm, long long val,
|
virtual int set(const std::string& nm, long long val, const std::string& sk = std::string());
|
||||||
const std::string& sk = std::string());
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove name and value from config
|
* Remove name and value from config
|
||||||
@ -388,8 +385,7 @@ public:
|
|||||||
construct(fns, ro);
|
construct(fns, ro);
|
||||||
}
|
}
|
||||||
/// Construct out of single file name and multiple directories
|
/// Construct out of single file name and multiple directories
|
||||||
ConfStack(const std::string& nm, const std::vector<std::string>& dirs,
|
ConfStack(const std::string& nm, const std::vector<std::string>& dirs, bool ro = true) {
|
||||||
bool ro = true) {
|
|
||||||
std::vector<std::string> fns;
|
std::vector<std::string> fns;
|
||||||
for (const auto& dir : dirs) {
|
for (const auto& dir : dirs) {
|
||||||
fns.push_back(path_cat(dir, nm));
|
fns.push_back(path_cat(dir, nm));
|
||||||
@ -501,8 +497,8 @@ public:
|
|||||||
const std::string& sk, const char *pattern = 0) const override {
|
const std::string& sk, const char *pattern = 0) const override {
|
||||||
return getNames1(sk, pattern, false);
|
return getNames1(sk, pattern, false);
|
||||||
}
|
}
|
||||||
virtual std::vector<std::string> getNamesShallow(const std::string& sk,
|
virtual std::vector<std::string> getNamesShallow(
|
||||||
const char *patt = 0) const {
|
const std::string& sk, const char *patt = 0) const {
|
||||||
return getNames1(sk, patt, true);
|
return getNames1(sk, patt, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -570,27 +566,30 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Common construct from file names code. We used to be ok even
|
/// Common construct from file names.
|
||||||
/// if some files were not readable/parsable. Now fail if any
|
/// Fail if any fails, except for missing files in all but the bottom location, or the
|
||||||
/// fails.
|
/// top one in rw mode.
|
||||||
void construct(const std::vector<std::string>& fns, bool ro) {
|
void construct(const std::vector<std::string>& fns, bool ro) {
|
||||||
bool ok{true};
|
bool ok{true};
|
||||||
bool first{true};
|
for (unsigned int i = 0; i < fns.size(); i++) {
|
||||||
for (const auto& fn : fns) {
|
const auto& fn{fns[i]};
|
||||||
T* p = new T(fn.c_str(), ro);
|
T* p = new T(fn.c_str(), ro);
|
||||||
if (p && p->ok()) {
|
if (p && p->ok()) {
|
||||||
m_confs.push_back(p);
|
m_confs.push_back(p);
|
||||||
} else {
|
} else {
|
||||||
delete p;
|
delete p;
|
||||||
// In ro mode, we accept a non-existing topmost file
|
// We accept missing files in all but the bottom/ directory.
|
||||||
// and treat it as an empty one.
|
// In rw mode, the topmost file must be present.
|
||||||
if (!(ro && first && !path_exists(fn))) {
|
if (!path_exists(fn)) {
|
||||||
ok = false;
|
// !ro can only be true for i==0
|
||||||
|
if (!ro || (i == fns.size() - 1)) {
|
||||||
|
ok = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Only the first file is opened rw
|
// Only the first file is opened rw
|
||||||
ro = true;
|
ro = true;
|
||||||
first = false;
|
|
||||||
}
|
}
|
||||||
m_ok = ok;
|
m_ok = ok;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,438 +1,38 @@
|
|||||||
# (C) 2015-2022 J.F.Dockes
|
# (C) 2015-2022 J.F.Dockes
|
||||||
|
|
||||||
# This file contains most of the data which determines how we
|
|
||||||
# handle the different mime types (also see the "mimeview" file).
|
|
||||||
#
|
#
|
||||||
# This is the version specific to MS-WINDOWS
|
# MS-WINDOWS specific definitions for mimeconf
|
||||||
#
|
#
|
||||||
# Sections:
|
|
||||||
# top-level: Decompression parameters. Should not be at top-level, historical.
|
|
||||||
# [index] : Associations of mime types to the filters that translate them
|
|
||||||
# to plain text or html.
|
|
||||||
# [icons] : Associations of mime types to result list icons (GUI)
|
|
||||||
# [categories] : groupings of mime types (media, text, message etc.)
|
|
||||||
# [guifilters] : defines the filtering checkboxes in the GUI. Uses the
|
|
||||||
# above categories by default
|
|
||||||
|
|
||||||
## #######################################
|
# Decompression: the windows version always uses 7z, no decompressor parameter is necessary
|
||||||
# Decompression: these types need a first pass to create a temp file to
|
|
||||||
# work with. We use a script because uncompress utilities usually work in
|
|
||||||
# place, which is not suitable.
|
|
||||||
#
|
|
||||||
# Obviously this should be in a [decompress] section or such, but it was once
|
|
||||||
# forgotten and remained global for compatibility...
|
|
||||||
#
|
|
||||||
# The %t parameter will be substituted to the name of a temporary directory
|
|
||||||
# by recoll. This directory is guaranteed empty when calling the filter
|
|
||||||
#
|
|
||||||
# The %f parameter will be substituted with the input file.
|
|
||||||
#
|
|
||||||
# The script (ie: rcluncomp) must output the uncompressed file name on
|
|
||||||
# stdout. Note that the windows version will always use 7z, and ignore
|
|
||||||
# the decompressor parameter in the following lines
|
|
||||||
application/gzip = uncompress rcluncomp.py 7z %f %t
|
application/gzip = uncompress rcluncomp.py 7z %f %t
|
||||||
application/x-gzip = uncompress rcluncomp.py 7z %f %t
|
application/x-gzip = uncompress rcluncomp.py 7z %f %t
|
||||||
application/x-compress = uncompress rcluncomp.py 7z %f %t
|
application/x-compress = uncompress rcluncomp.py 7z %f %t
|
||||||
application/x-bzip2 = uncompress rcluncomp.py 7z %f %t
|
application/x-bzip2 = uncompress rcluncomp.py 7z %f %t
|
||||||
application/x-xz = uncompress rcluncomp.py 7z %f %t
|
application/x-xz = uncompress rcluncomp.py 7z %f %t
|
||||||
application/x-lzma = uncompress rcluncomp.py 7z %f %t
|
application/x-lzma = uncompress rcluncomp.py 7z %f %t
|
||||||
|
application/x-scribus =
|
||||||
|
application/x-tex =
|
||||||
|
|
||||||
|
|
||||||
## ###################################
|
|
||||||
# Filters for indexing and internal preview.
|
|
||||||
# The "internal" filters are hardwired in the c++ code.
|
|
||||||
# The external "exec" filters are typically scripts. By default, they output the
|
|
||||||
# document in simple html format, have a look at the scripts.
|
|
||||||
# A different format (ie text/plain), and a character set can be defined for
|
|
||||||
# each filter, see the exemples below (ie: msword)
|
|
||||||
[index]
|
[index]
|
||||||
|
application/postscript =
|
||||||
application/msword = execm rcldoc.py
|
|
||||||
application/vnd.ms-excel = execm rclxls.py
|
|
||||||
application/vnd.ms-outlook = execm rclpst.py
|
|
||||||
application/vnd.ms-powerpoint = execm rclppt.py
|
|
||||||
# Also Handle the mime type returned by "file -i" for a suffix-less word
|
|
||||||
# file. This could probably just as well be an excel file, but we have to
|
|
||||||
# chose one.
|
|
||||||
application/vnd.ms-office = execm rcldoc.py
|
|
||||||
|
|
||||||
application/vnd.oasis.opendocument.text = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.oasis.opendocument.text-template = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.oasis.opendocument.presentation = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.oasis.opendocument.spreadsheet = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.oasis.opendocument.graphics = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.oasis.opendocument.presentation-flat-xml = \
|
|
||||||
internal xsltproc opendoc-flat.xsl
|
|
||||||
application/vnd.oasis.opendocument.text-flat-xml = \
|
|
||||||
internal xsltproc opendoc-flat.xsl
|
|
||||||
application/vnd.oasis.opendocument.spreadsheet-flat-xml = \
|
|
||||||
internal xsltproc opendoc-flat.xsl
|
|
||||||
|
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document = \
|
|
||||||
internal xsltproc meta docProps/core.xml openxml-meta.xsl \
|
|
||||||
body word/document.xml openxml-word-body.xsl \
|
|
||||||
body word/footnotes.xml openxml-word-body.xsl \
|
|
||||||
body word/endnotes.xml openxml-word-body.xsl
|
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.template = \
|
|
||||||
internal xsltproc meta docProps/core.xml openxml-meta.xsl \
|
|
||||||
body word/document.xml openxml-word-body.xsl \
|
|
||||||
body word/footnotes.xml openxml-word-body.xsl \
|
|
||||||
body word/endnotes.xml openxml-word-body.xsl
|
|
||||||
application/vnd.openxmlformats-officedocument.presentationml.template = \
|
|
||||||
execm rclopxml.py
|
|
||||||
application/vnd.openxmlformats-officedocument.presentationml.presentation = \
|
|
||||||
execm rclopxml.py
|
|
||||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet = \
|
|
||||||
internal xsltproc meta docProps/core.xml openxml-meta.xsl \
|
|
||||||
body xl/sharedStrings.xml openxml-xls-body.xsl
|
|
||||||
application/vnd.openxmlformats-officedocument.spreadsheetml.template =\
|
|
||||||
internal xsltproc meta docProps/core.xml openxml-meta.xsl \
|
|
||||||
body xl/sharedStrings.xml openxml-xls-body.xsl
|
|
||||||
|
|
||||||
application/vnd.sun.xml.calc = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.sun.xml.calc.template = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.sun.xml.draw = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.sun.xml.draw.template = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.sun.xml.impress = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.sun.xml.impress.template = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.sun.xml.math = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.sun.xml.writer = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.sun.xml.writer.global = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
application/vnd.sun.xml.writer.template = \
|
|
||||||
internal xsltproc meta meta.xml opendoc-meta.xsl \
|
|
||||||
body content.xml opendoc-body.xsl
|
|
||||||
|
|
||||||
#application/postscript = exec rclps
|
|
||||||
#application/x-gnuinfo = execm rclinfo.py
|
|
||||||
#application/x-tar = execm rcltar.py
|
|
||||||
|
|
||||||
application/epub+zip = execm rclepub.py
|
|
||||||
application/x-ipynb+json = execm rclipynb.py
|
|
||||||
application/javascript = internal text/plain
|
|
||||||
application/ogg = execm rclaudio.py
|
|
||||||
application/pdf = execm rclpdf.py
|
|
||||||
application/sql = internal text/plain
|
|
||||||
application/vnd.wordperfect = exec wpd/wpd2html;mimetype=text/html
|
application/vnd.wordperfect = exec wpd/wpd2html;mimetype=text/html
|
||||||
application/x-7z-compressed = execm rcl7z.py
|
application/x-dvi =
|
||||||
application/x-abiword = internal xsltproc abiword.xsl
|
application/x-gnuinfo =
|
||||||
application/x-awk = internal text/plain
|
application/x-ipynb+json = execm rclipynb.py
|
||||||
application/x-chm = execm rclchm.py
|
application/x-tar =
|
||||||
application/x-dia-diagram = execm rcldia.py;mimetype=text/plain
|
|
||||||
application/x-flac = execm rclaudio.py
|
|
||||||
application/x-gnote = execm rclxml.py
|
|
||||||
application/x-hwp = execm rclhwp.py
|
|
||||||
application/x-mimehtml = internal message/rfc822
|
|
||||||
application/x-perl = internal text/plain
|
|
||||||
application/x-php = internal text/plain
|
|
||||||
application/x-rar = execm rclrar.py;charset=default
|
|
||||||
application/x-shellscript = internal text/plain
|
|
||||||
application/x-webarchive = execm rclwar.py
|
|
||||||
application/x-zerosize = internal
|
|
||||||
application/zip = execm rclzip.py;charset=default
|
|
||||||
audio/aac = execm rclaudio.py
|
|
||||||
audio/mp4 = execm rclaudio.py
|
|
||||||
audio/mpeg = execm rclaudio.py
|
|
||||||
audio/x-karaoke = execm rclkar.py
|
|
||||||
image/gif = execm rclimg.exe
|
image/gif = execm rclimg.exe
|
||||||
image/jp2 = execm rclimg.exe
|
image/jp2 = execm rclimg.exe
|
||||||
image/jpeg = execm rclimg.exe
|
image/jpeg = execm rclimg.exe
|
||||||
image/png = execm rclimg.exe
|
image/png = execm rclimg.exe
|
||||||
image/svg+xml = internal xsltproc svg.xsl
|
|
||||||
image/tiff = execm rclimg.exe
|
image/tiff = execm rclimg.exe
|
||||||
image/vnd.djvu = execm rcldjvu.py
|
image/x-nikon-nef = execm rclimg.exe
|
||||||
inode/symlink = internal
|
|
||||||
inode/x-empty = internal application/x-zerosize
|
|
||||||
message/rfc822 = internal
|
|
||||||
text/calendar = execm rclics.py;mimetype=text/plain
|
|
||||||
text/css = internal text/plain
|
|
||||||
text/html = internal
|
|
||||||
text/plain = internal
|
|
||||||
text/plain1 = internal
|
|
||||||
#text/rtf = execm rclrtf.py
|
|
||||||
text/rtf = exec unrtf --nopict --html;mimetype=text/html
|
|
||||||
text/x-c = internal
|
|
||||||
text/x-c+ = internal
|
|
||||||
text/x-c++ = internal
|
|
||||||
text/x-chm-html = internal text/html
|
|
||||||
text/x-csharp = internal text/plain
|
|
||||||
text/x-csv = internal text/plain
|
|
||||||
text/x-fictionbook = internal xsltproc fb2.xsl
|
|
||||||
text/x-ini = internal text/plain
|
|
||||||
text/x-mail = internal
|
|
||||||
text/x-orgmode = execm rclorgmode.py
|
|
||||||
text/x-perl = internal text/plain
|
|
||||||
text/x-python = execm rclpython.py
|
|
||||||
text/x-shellscript = internal text/plain
|
|
||||||
text/x-srt = internal text/plain
|
|
||||||
image/x-xcf = execm rclimg.exe
|
image/x-xcf = execm rclimg.exe
|
||||||
|
text/x-bibtex =
|
||||||
# Generic XML is best indexed as text, else it generates too many errors
|
text/x-gaim-log =
|
||||||
# All parameter and tag names, attribute values etc, are indexed as
|
text/x-html-aptosid-man =
|
||||||
# text. rclxml.py tries to just index the text content.
|
text/x-man =
|
||||||
#application/xml = execm rclxml.py
|
text/x-purple-log =
|
||||||
#text/xml = execm rclxml.py
|
text/x-tex =
|
||||||
application/xml = internal text/plain
|
video/x-msvideo = execm rclimg.exe
|
||||||
text/xml = internal text/plain
|
|
||||||
|
|
||||||
## #############################################
|
|
||||||
# Icons to be used in the result list if required by gui config
|
|
||||||
[icons]
|
|
||||||
application/epub+zip = book
|
|
||||||
application/javascript = source
|
|
||||||
application/msword = wordprocessing
|
|
||||||
application/ogg = sownd
|
|
||||||
application/pdf = pdf
|
|
||||||
application/postscript = postscript
|
|
||||||
application/vnd.ms-excel = spreadsheet
|
|
||||||
application/vnd.ms-powerpoint = presentation
|
|
||||||
application/vnd.oasis.opendocument.presentation = presentation
|
|
||||||
application/vnd.oasis.opendocument.spreadsheet = spreadsheet
|
|
||||||
application/vnd.oasis.opendocument.text = wordprocessing
|
|
||||||
application/vnd.openxmlformats-officedocument.presentationml.presentation = presentation
|
|
||||||
application/vnd.openxmlformats-officedocument.presentationml.template = presentation
|
|
||||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet = spreadsheet
|
|
||||||
application/vnd.openxmlformats-officedocument.spreadsheetml.template = spreadsheet
|
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document = wordprocessing
|
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.template = wordprocessing
|
|
||||||
application/vnd.sun.xml.calc = spreadsheet
|
|
||||||
application/vnd.sun.xml.calc.template = spreadsheet
|
|
||||||
application/vnd.sun.xml.draw = drawing
|
|
||||||
application/vnd.sun.xml.draw.template = drawing
|
|
||||||
application/vnd.sun.xml.impress = presentation
|
|
||||||
application/vnd.sun.xml.impress.template = presentation
|
|
||||||
application/vnd.sun.xml.math = wordprocessing
|
|
||||||
application/vnd.sun.xml.writer = wordprocessing
|
|
||||||
application/vnd.sun.xml.writer.global = wordprocessing
|
|
||||||
application/vnd.sun.xml.writer.template = wordprocessing
|
|
||||||
application/vnd.wordperfect = wordprocessing
|
|
||||||
application/x-abiword = wordprocessing
|
|
||||||
application/x-awk = source
|
|
||||||
application/x-chm = book
|
|
||||||
application/x-dia-diagram = drawing
|
|
||||||
application/x-dvi = document
|
|
||||||
application/x-flac = sownd
|
|
||||||
application/x-fsdirectory = folder
|
|
||||||
application/x-gnote = document
|
|
||||||
#application/x-gnuinfo = book
|
|
||||||
application/x-gnumeric = spreadsheet
|
|
||||||
application/x-ipynb+json = document
|
|
||||||
application/x-kword = wordprocessing
|
|
||||||
application/x-lyx = wordprocessing
|
|
||||||
application/x-mimehtml = message
|
|
||||||
application/x-mobipocket-ebook = document
|
|
||||||
application/x-okular-notes = document
|
|
||||||
application/x-perl = source
|
|
||||||
application/x-php = source
|
|
||||||
application/x-rar = archive
|
|
||||||
application/x-scribus = document
|
|
||||||
application/x-scribus = wordprocessing
|
|
||||||
application/x-shellscript = source
|
|
||||||
application/x-tar = archive
|
|
||||||
application/x-tex = wordprocessing
|
|
||||||
application/x-webarchive = archive
|
|
||||||
application/xml = document
|
|
||||||
application/zip = archive
|
|
||||||
application/x-7z-compressed = archive
|
|
||||||
audio/mpeg = sownd
|
|
||||||
audio/x-karaoke = sownd
|
|
||||||
image/bmp = image
|
|
||||||
image/gif = image
|
|
||||||
image/jp2 = image
|
|
||||||
image/jpeg = image
|
|
||||||
image/png = image
|
|
||||||
image/svg+xml = drawing
|
|
||||||
image/tiff = image
|
|
||||||
image/vnd.djvu = document
|
|
||||||
image/x-xcf = image
|
|
||||||
image/x-xpmi = image
|
|
||||||
inode/directory = folder
|
|
||||||
inode/symlink = emblem-symbolic-link
|
|
||||||
message/rfc822 = message
|
|
||||||
text/html = html
|
|
||||||
text/html|chm = bookchap
|
|
||||||
text/html|epub = bookchap
|
|
||||||
#text/html|gnuinfo = bookchap
|
|
||||||
text/plain = txt
|
|
||||||
text/rtf = wordprocessing
|
|
||||||
text/x-c = source
|
|
||||||
text/x-c+ = source
|
|
||||||
text/x-c++ = source
|
|
||||||
text/x-csv = txt
|
|
||||||
text/x-fictionbook = document
|
|
||||||
text/x-html-aptosid-man = aptosid-book
|
|
||||||
text/x-html-sidux-man = sidux-book
|
|
||||||
text/x-ini = txt
|
|
||||||
text/x-mail = message
|
|
||||||
text/x-man = document
|
|
||||||
text/x-orgmode = document
|
|
||||||
text/x-perl = source
|
|
||||||
text/x-purple-html-log = pidgin
|
|
||||||
text/x-purple-log = pidgin
|
|
||||||
text/x-python = text-x-python
|
|
||||||
text/x-shellscript = source
|
|
||||||
text/x-tex = wordprocessing
|
|
||||||
text/xml = document
|
|
||||||
video/3gpp = video
|
|
||||||
video/mp2p = video
|
|
||||||
video/mp2t = video
|
|
||||||
video/mp4 = video
|
|
||||||
video/mpeg = video
|
|
||||||
video/quicktime = video
|
|
||||||
video/x-matroska = video
|
|
||||||
video/x-ms-asf = video
|
|
||||||
video/x-msvideo = video
|
|
||||||
|
|
||||||
[categories]
|
|
||||||
# Categories group mime types by "kind". They can be used from the query
|
|
||||||
# language as an "rclcat" clause. This is fully dynamic, you can change the
|
|
||||||
# names and groups as you wish, only the mime types are stored in the index.
|
|
||||||
#
|
|
||||||
# If you add/remove categories, you may also want to change the
|
|
||||||
# "guifilters" section below.
|
|
||||||
text = \
|
|
||||||
application/epub+zip \
|
|
||||||
application/msword \
|
|
||||||
application/pdf \
|
|
||||||
application/postscript \
|
|
||||||
application/vnd.oasis.opendocument.text \
|
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document \
|
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.template \
|
|
||||||
application/vnd.sun.xml.writer \
|
|
||||||
application/vnd.sun.xml.writer.global \
|
|
||||||
application/vnd.sun.xml.writer.template \
|
|
||||||
application/vnd.wordperfect \
|
|
||||||
application/x-abiword \
|
|
||||||
application/x-awk \
|
|
||||||
application/x-chm \
|
|
||||||
application/x-dvi \
|
|
||||||
application/x-gnote \
|
|
||||||
application/x-gnuinfo \
|
|
||||||
application/x-ipynb+json \
|
|
||||||
application/x-kword \
|
|
||||||
application/x-lyx \
|
|
||||||
application/x-mobipocket-ebook \
|
|
||||||
application/x-okular-notes \
|
|
||||||
application/x-perl \
|
|
||||||
application/x-scribus \
|
|
||||||
application/x-shellscript \
|
|
||||||
application/x-tex \
|
|
||||||
application/xml \
|
|
||||||
text/xml \
|
|
||||||
text/x-csv \
|
|
||||||
text/x-tex \
|
|
||||||
image/vnd.djvu \
|
|
||||||
text/calendar \
|
|
||||||
text/html \
|
|
||||||
text/plain \
|
|
||||||
text/rtf \
|
|
||||||
text/x-c \
|
|
||||||
text/x-c++ \
|
|
||||||
text/x-c+ \
|
|
||||||
text/x-fictionbook \
|
|
||||||
text/x-html-aptosid-man \
|
|
||||||
text/x-html-sidux-man \
|
|
||||||
text/x-ini \
|
|
||||||
text/x-man \
|
|
||||||
text/x-orgmode \
|
|
||||||
text/x-perl \
|
|
||||||
text/x-python \
|
|
||||||
text/x-shellscript
|
|
||||||
|
|
||||||
spreadsheet = \
|
|
||||||
application/vnd.ms-excel \
|
|
||||||
application/vnd.oasis.opendocument.spreadsheet \
|
|
||||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet \
|
|
||||||
application/vnd.openxmlformats-officedocument.spreadsheetml.template \
|
|
||||||
application/vnd.sun.xml.calc \
|
|
||||||
application/vnd.sun.xml.calc.template \
|
|
||||||
application/x-gnumeric
|
|
||||||
|
|
||||||
presentation = \
|
|
||||||
application/vnd.ms-powerpoint \
|
|
||||||
application/vnd.oasis.opendocument.presentation \
|
|
||||||
application/vnd.openxmlformats-officedocument.presentationml.presentation \
|
|
||||||
application/vnd.openxmlformats-officedocument.presentationml.template \
|
|
||||||
application/vnd.sun.xml.impress \
|
|
||||||
application/vnd.sun.xml.impress.template
|
|
||||||
|
|
||||||
media = \
|
|
||||||
application/ogg \
|
|
||||||
application/x-flac \
|
|
||||||
audio/* \
|
|
||||||
image/* \
|
|
||||||
video/* \
|
|
||||||
|
|
||||||
message = message/rfc822 \
|
|
||||||
text/x-gaim-log \
|
|
||||||
text/x-mail \
|
|
||||||
text/x-purple-log \
|
|
||||||
text/x-purple-html-log \
|
|
||||||
|
|
||||||
other = application/vnd.sun.xml.draw \
|
|
||||||
application/vnd.sun.xml.draw.template \
|
|
||||||
application/vnd.sun.xml.math \
|
|
||||||
application/x-dia-diagram \
|
|
||||||
application/x-fsdirectory \
|
|
||||||
application/x-mimehtml \
|
|
||||||
application/x-rar \
|
|
||||||
application/x-tar \
|
|
||||||
application/x-webarchive \
|
|
||||||
application/zip \
|
|
||||||
application/x-7z-compressed \
|
|
||||||
inode/directory \
|
|
||||||
inode/symlink \
|
|
||||||
|
|
||||||
[guifilters]
|
|
||||||
# This defines the top level filters in the GUI (accessed by the the
|
|
||||||
# radiobuttons above the results area, or a toolbar combobox).
|
|
||||||
# Each entry defines a label and a query language fragment that will be
|
|
||||||
# applied to filter the current query if the option is activated.
|
|
||||||
#
|
|
||||||
# This does not really belong in mimeconf, but it does belong in the index
|
|
||||||
# config (not the GUI one), because it's not necessarily the same in all
|
|
||||||
# configs, it has to go somewhere, and it's not worth a separate config
|
|
||||||
# file...
|
|
||||||
#
|
|
||||||
# By default this filters by document category (see above), but any
|
|
||||||
# language fragment should be ok. Be aware though that the "document
|
|
||||||
# history" queries only know about simple "rclcat" filtering.
|
|
||||||
#
|
|
||||||
# If you don't want the filter names to be displayed in alphabetic order,
|
|
||||||
# you can define them with a colon. The part before the colon is not
|
|
||||||
# displayed but used for ordering, ie: a:zzbutshouldbefirst b:aacomeslast
|
|
||||||
#
|
|
||||||
text = rclcat:text
|
|
||||||
spreadsheet = rclcat:spreadsheet
|
|
||||||
presentation = rclcat:presentation
|
|
||||||
media = rclcat:media
|
|
||||||
message = rclcat:message
|
|
||||||
other = rclcat:other
|
|
||||||
|
|
||||||
|
|||||||
@ -1,21 +1,5 @@
|
|||||||
## ##########################################
|
# MS WINDOWS system changes for mimeview
|
||||||
# External viewers, launched by the recoll GUI when you click on a result
|
|
||||||
# 'edit' link
|
|
||||||
#
|
|
||||||
# MS WINDOWS VERSION
|
|
||||||
#
|
|
||||||
# Mime types which we should not uncompress if they are found gzipped or
|
|
||||||
# bzipped because the native viewer knows how to handle. These would be
|
|
||||||
# exceptions and the list is normally empty
|
|
||||||
#nouncompforviewmts =
|
|
||||||
|
|
||||||
# For releases 1.18 and later: exceptions when using the x-all entry: these
|
|
||||||
# types will use their local definition. This is useful, e.g.:
|
|
||||||
#
|
|
||||||
# - for pdf, where we can pass additional parameters like page to open and
|
|
||||||
# search string
|
|
||||||
# - For pages of CHM and EPUB documents where we can choose to open the
|
|
||||||
# parent document instead of a temporary html file.
|
|
||||||
xallexcepts = \
|
xallexcepts = \
|
||||||
text/html|epub \
|
text/html|epub \
|
||||||
application/x-fsdirectory|parentopen inode/directory|parentopen
|
application/x-fsdirectory|parentopen inode/directory|parentopen
|
||||||
@ -44,157 +28,6 @@ application/pdf = C:/users/bill/appdata/local/apps/evince-2.32.0.145/bin/evince
|
|||||||
#application/pdf = "C:/Program Files/SumatraPDF/SumatraPDF.exe" -page %p %f
|
#application/pdf = "C:/Program Files/SumatraPDF/SumatraPDF.exe" -page %p %f
|
||||||
#application/pdf = "C:/Program Files (x86)/Foxit Software/Foxit Reader/FoxitReader.exe" %f /A page=%p
|
#application/pdf = "C:/Program Files (x86)/Foxit Software/Foxit Reader/FoxitReader.exe" %f /A page=%p
|
||||||
|
|
||||||
###### THE FOLLOWING ARE NOT USED AT ALL ON WINDOWS, but the types need to
|
##########
|
||||||
###### be listed for an "Open" link to appear in the result list
|
# Other MIME types have no specializations on Windows, but the types need to be listed for an "Open"
|
||||||
application/epub+zip = ebook-viewer %f
|
# link to appear in the result list, the listing is in the generic file
|
||||||
|
|
||||||
application/x-gnote = gnote %f
|
|
||||||
|
|
||||||
application/x-mobipocket-ebook = ebook-viewer %f
|
|
||||||
|
|
||||||
application/x-kword = kword %f
|
|
||||||
application/x-abiword = abiword %f
|
|
||||||
|
|
||||||
|
|
||||||
application/postscript = evince --page-index=%p --find=%s %f
|
|
||||||
application/x-dvi = evince --page-index=%p --find=%s %f
|
|
||||||
|
|
||||||
application/x-lyx = lyx %f
|
|
||||||
application/x-scribus = scribus %f
|
|
||||||
|
|
||||||
#application/msword = libreoffice %f
|
|
||||||
application/msword = \
|
|
||||||
"C:/Program Files (x86)/LibreOffice 5/program/soffice.exe" %f
|
|
||||||
|
|
||||||
application/x-hwp = hanword %f
|
|
||||||
|
|
||||||
application/vnd.ms-excel = libreoffice %f
|
|
||||||
application/vnd.ms-powerpoint = libreoffice %f
|
|
||||||
|
|
||||||
application/vnd.oasis.opendocument.text = libreoffice %f
|
|
||||||
application/vnd.oasis.opendocument.presentation = libreoffice %f
|
|
||||||
application/vnd.oasis.opendocument.spreadsheet = libreoffice %f
|
|
||||||
|
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document = \
|
|
||||||
libreoffice %f
|
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.template = \
|
|
||||||
libreoffice %f
|
|
||||||
application/vnd.openxmlformats-officedocument.presentationml.template = \
|
|
||||||
libreoffice %f
|
|
||||||
application/vnd.openxmlformats-officedocument.presentationml.presentation = \
|
|
||||||
libreoffice %f
|
|
||||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet = \
|
|
||||||
libreoffice %f
|
|
||||||
application/vnd.openxmlformats-officedocument.spreadsheetml.template =\
|
|
||||||
libreoffice %f
|
|
||||||
application/vnd.sun.xml.calc = libreoffice %f
|
|
||||||
application/vnd.sun.xml.calc.template = libreoffice %f
|
|
||||||
application/vnd.sun.xml.draw = libreoffice %f
|
|
||||||
application/vnd.sun.xml.draw.template = libreoffice %f
|
|
||||||
application/vnd.sun.xml.impress = libreoffice %f
|
|
||||||
application/vnd.sun.xml.impress.template = libreoffice %f
|
|
||||||
application/vnd.sun.xml.math = libreoffice %f
|
|
||||||
application/vnd.sun.xml.writer = libreoffice %f
|
|
||||||
application/vnd.sun.xml.writer.global = libreoffice %f
|
|
||||||
application/vnd.sun.xml.writer.template = libreoffice %f
|
|
||||||
application/vnd.wordperfect = libreoffice %f
|
|
||||||
text/rtf = libreoffice %f
|
|
||||||
|
|
||||||
application/x-dia-diagram = dia %f
|
|
||||||
|
|
||||||
application/x-fsdirectory = dolphin %f
|
|
||||||
inode/directory = dolphin %f
|
|
||||||
|
|
||||||
application/x-gnuinfo = xterm -e "info -f %f"
|
|
||||||
application/x-gnumeric = gnumeric %f
|
|
||||||
|
|
||||||
application/x-flac = rhythmbox %f
|
|
||||||
audio/mpeg = rhythmbox %f
|
|
||||||
application/ogg = rhythmbox %f
|
|
||||||
audio/x-karaoke = kmid %f
|
|
||||||
|
|
||||||
image/jpeg = gwenview %f
|
|
||||||
image/png = gwenview %f
|
|
||||||
image/tiff = gwenview %f
|
|
||||||
image/gif = gwenview %f
|
|
||||||
image/svg+xml = inkview %f
|
|
||||||
image/vnd.djvu = djview %f
|
|
||||||
image/x-xcf = gimp %f
|
|
||||||
image/bmp = gwenview %f
|
|
||||||
image/x-ms-bmp = gwenview %f
|
|
||||||
image/x-xpmi = gwenview %f
|
|
||||||
|
|
||||||
# Opening mail messages not always works.
|
|
||||||
# - Thunderbird will only open a single-message file if it has an .emf
|
|
||||||
# extension
|
|
||||||
# - "sylpheed %f" seems to work ok as of version 3.3
|
|
||||||
# - "kmail --view %u" works
|
|
||||||
message/rfc822 = thunderbird -file %f
|
|
||||||
text/x-mail = thunderbird -file %f
|
|
||||||
application/x-mimehtml = thunderbird -file %f
|
|
||||||
|
|
||||||
text/calendar = evolution %f
|
|
||||||
|
|
||||||
application/x-okular-notes = okular %f
|
|
||||||
|
|
||||||
application/x-rar = ark %f
|
|
||||||
application/x-tar = ark %f
|
|
||||||
application/zip = ark %f
|
|
||||||
application/x-7z-compressed = ark %f
|
|
||||||
|
|
||||||
application/x-awk = emacsclient --no-wait %f
|
|
||||||
application/x-perl = emacsclient --no-wait %f
|
|
||||||
text/x-perl = emacsclient --no-wait %f
|
|
||||||
application/x-shellscript = emacsclient --no-wait %f
|
|
||||||
text/x-shellscript = emacsclient --no-wait %f
|
|
||||||
text/x-srt = emacsclient --no-wait %f
|
|
||||||
|
|
||||||
# Or firefox -remote "openFile(%u)"
|
|
||||||
text/html = firefox %u
|
|
||||||
|
|
||||||
# gnu info nodes are translated to html with a "gnuinfo"
|
|
||||||
# rclaptg. rclshowinfo knows how to start the info command on the right
|
|
||||||
# node
|
|
||||||
text/html|gnuinfo = rclshowinfo %F %(title);ignoreipath=1
|
|
||||||
|
|
||||||
application/x-webarchive = konqueror %f
|
|
||||||
text/x-fictionbook = ebook-viewer %f
|
|
||||||
application/x-tex = emacsclient --no-wait %f
|
|
||||||
application/xml = emacsclient --no-wait %f
|
|
||||||
text/xml = emacsclient --no-wait %f
|
|
||||||
text/x-tex = emacsclient --no-wait %f
|
|
||||||
text/plain = emacsclient --no-wait %f
|
|
||||||
text/x-awk = emacsclient --no-wait %f
|
|
||||||
text/x-c = emacsclient --no-wait %f
|
|
||||||
text/x-c+ = emacsclient --no-wait %f
|
|
||||||
text/x-c++ = emacsclient --no-wait %f
|
|
||||||
text/x-csv = libreoffice %f
|
|
||||||
text/x-html-sidux-man = konqueror %f
|
|
||||||
text/x-html-aptosid-man = iceweasel %f
|
|
||||||
|
|
||||||
application/x-chm = kchmviewer %f
|
|
||||||
# Html pages inside a chm have a chm rclaptg set by the filter. Kchmviewer
|
|
||||||
# knows how to use the ipath (which is the internal chm path) to open the
|
|
||||||
# file at the right place
|
|
||||||
text/html|chm = kchmviewer --url %i %F
|
|
||||||
|
|
||||||
text/x-ini = emacsclient --no-wait %f
|
|
||||||
text/x-man = xterm -u8 -e "groff -T ascii -man %f | more"
|
|
||||||
text/x-python = idle %f
|
|
||||||
text/x-gaim-log = emacsclient --no-wait %f
|
|
||||||
text/x-purple-html-log = emacsclient --no-wait %f
|
|
||||||
text/x-purple-log = emacsclient --no-wait %f
|
|
||||||
|
|
||||||
# The video types will usually be handled by the desktop default, but they
|
|
||||||
# need entries here to get an "Open" link
|
|
||||||
video/3gpp = vlc %f
|
|
||||||
video/mp2p = vlc %f
|
|
||||||
video/mp2t = vlc %f
|
|
||||||
video/mp4 = vlc %f
|
|
||||||
video/mpeg = vlc %f
|
|
||||||
video/quicktime = vlc %f
|
|
||||||
video/x-matroska = vlc %f
|
|
||||||
video/x-ms-asf = vlc %f
|
|
||||||
video/x-msvideo = vlc %f
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -171,13 +171,15 @@ copyrecoll()
|
|||||||
chkcp $RCL/doc/user/docbook-xsl.css $DESTDIR/Share/doc
|
chkcp $RCL/doc/user/docbook-xsl.css $DESTDIR/Share/doc
|
||||||
mkdir -p $DESTDIR/Share/doc/webhelp
|
mkdir -p $DESTDIR/Share/doc/webhelp
|
||||||
rsync -av $RCL/doc/user/webhelp/docs/* $DESTDIR/Share/doc/webhelp || exit 1
|
rsync -av $RCL/doc/user/webhelp/docs/* $DESTDIR/Share/doc/webhelp || exit 1
|
||||||
chkcp $RCL/sampleconf/fields $DESTDIR/Share/examples
|
chkcp $RCL/sampleconf/fields $DESTDIR/Share/examples
|
||||||
chkcp $RCL/sampleconf/fragment-buttons.xml $DESTDIR/Share/examples
|
chkcp $RCL/sampleconf/fragment-buttons.xml $DESTDIR/Share/examples
|
||||||
chkcp $RCL/windows/mimeconf $DESTDIR/Share/examples
|
chkcp $RCL/sampleconf/mimeconf $DESTDIR/Share/examples
|
||||||
chkcp $RCL/sampleconf/mimemap $DESTDIR/Share/examples
|
chkcp $RCL/sampleconf/mimeview $DESTDIR/Share/examples
|
||||||
chkcp $RCL/windows/mimeview $DESTDIR/Share/examples
|
chkcp $RCL/sampleconf/mimemap $DESTDIR/Share/examples
|
||||||
chkcp $RCL/sampleconf/recoll.conf $DESTDIR/Share/examples
|
chkcp $RCL/windows/mimeconf $DESTDIR/Share/examples/windows
|
||||||
chkcp $RCL/sampleconf/recoll.qss $DESTDIR/Share/examples
|
chkcp $RCL/windows/mimeview $DESTDIR/Share/examples/windows
|
||||||
|
chkcp $RCL/sampleconf/recoll.conf $DESTDIR/Share/examples
|
||||||
|
chkcp $RCL/sampleconf/recoll.qss $DESTDIR/Share/examples
|
||||||
chkcp $RCL/sampleconf/recoll-dark.qss $DESTDIR/Share/examples
|
chkcp $RCL/sampleconf/recoll-dark.qss $DESTDIR/Share/examples
|
||||||
chkcp $RCL/sampleconf/recoll-dark.css $DESTDIR/Share/examples
|
chkcp $RCL/sampleconf/recoll-dark.css $DESTDIR/Share/examples
|
||||||
|
|
||||||
@ -349,7 +351,7 @@ test "$VERSION" = "$CFVERS" ||
|
|||||||
|
|
||||||
echo Packaging version $CFVERS
|
echo Packaging version $CFVERS
|
||||||
|
|
||||||
for d in doc examples filters images translations; do
|
for d in doc examples examples/windows filters images translations; do
|
||||||
test -d $DESTDIR/Share/$d || mkdir -p $DESTDIR/Share/$d || \
|
test -d $DESTDIR/Share/$d || mkdir -p $DESTDIR/Share/$d || \
|
||||||
fatal mkdir $d failed
|
fatal mkdir $d failed
|
||||||
done
|
done
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user