mirror of
https://github.com/PDB-REDO/libcifpp.git
synced 2026-06-04 22:14:24 +08:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57ac5f0112 | ||
|
|
d5a71b0b24 | ||
|
|
d95b7be2e4 | ||
|
|
2f0a23f56a | ||
|
|
13b218f643 | ||
|
|
92a836ecdc | ||
|
|
c88a46f155 | ||
|
|
8882a34984 | ||
|
|
2d4a1731d9 | ||
|
|
be1e3073f1 |
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
||||
[submodule "gxrio"]
|
||||
path = gxrio
|
||||
url = https://github.com/mhekkel/gxrio.git
|
||||
@@ -25,7 +25,7 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
# set the project name
|
||||
project(cifpp VERSION 5.0.2 LANGUAGES CXX)
|
||||
project(cifpp VERSION 5.0.5 LANGUAGES CXX)
|
||||
|
||||
list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
|
||||
@@ -299,19 +299,17 @@ if(CIFPP_DOWNLOAD_CCD)
|
||||
add_custom_target(COMPONENTS ALL DEPENDS ${COMPONENTS_CIF})
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
set(CIFPP_CACHE_DIR "/var/cache/libcifpp" CACHE STRING "The cache directory to use")
|
||||
target_compile_definitions(cifpp PUBLIC CACHE_DIR="${CIFPP_CACHE_DIR}")
|
||||
endif()
|
||||
|
||||
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
set(LIBRARY_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR})
|
||||
set(SHARE_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/libcifpp)
|
||||
|
||||
set(CIFPP_DATA_DIR "${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL_DIR}" CACHE STRING "The directory containing the provided data files")
|
||||
|
||||
# Installation directories
|
||||
set(CIFPP_DATA_DIR "${CMAKE_INSTALL_FULL_DATADIR}/libcifpp")
|
||||
target_compile_definitions(cifpp PUBLIC DATA_DIR="${CIFPP_DATA_DIR}")
|
||||
|
||||
if(UNIX)
|
||||
set(CIFPP_CACHE_DIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/cache/libcifpp")
|
||||
target_compile_definitions(cifpp PUBLIC CACHE_DIR="${CIFPP_CACHE_DIR}")
|
||||
|
||||
set(CIFPP_ETC_DIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}")
|
||||
endif()
|
||||
|
||||
# Install rules
|
||||
install(TARGETS cifpp
|
||||
EXPORT cifppTargets
|
||||
@@ -359,7 +357,7 @@ configure_package_config_file(
|
||||
${CONFIG_TEMPLATE_FILE}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/cifpp/cifppConfig.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cifpp
|
||||
PATH_VARS INCLUDE_INSTALL_DIR LIBRARY_INSTALL_DIR SHARE_INSTALL_DIR
|
||||
PATH_VARS CIFPP_DATA_DIR
|
||||
)
|
||||
|
||||
install(FILES
|
||||
@@ -429,11 +427,15 @@ if(ENABLE_TESTING)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
message("Will install in ${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
# Optionally install the update scripts for CCD and dictionary files
|
||||
if(CIFPP_INSTALL_UPDATE_SCRIPT)
|
||||
set(CIFPP_CRON_DIR "$ENV{DESTDIR}/etc/cron.weekly")
|
||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||
set(CIFPP_CRON_DIR "${CIFPP_ETC_DIR}/cron.weekly")
|
||||
elseif(UNIX) # assume all others are like FreeBSD...
|
||||
set(CIFPP_CRON_DIR "${CIFPP_ETC_DIR}/periodic/weekly")
|
||||
else()
|
||||
message(FATAL_ERROR "Don't know where to install the update script")
|
||||
endif()
|
||||
|
||||
configure_file(${PROJECT_SOURCE_DIR}/tools/update-libcifpp-data.in update-libcifpp-data @ONLY)
|
||||
install(
|
||||
@@ -443,15 +445,15 @@ if(CIFPP_INSTALL_UPDATE_SCRIPT)
|
||||
)
|
||||
|
||||
install(DIRECTORY DESTINATION ${CIFPP_CACHE_DIR})
|
||||
install(DIRECTORY DESTINATION "$ENV{DESTDIR}/etc/libcifpp/cache-update.d")
|
||||
install(DIRECTORY DESTINATION "${CIFPP_ETC_DIR}/libcifpp/cache-update.d")
|
||||
|
||||
# a config to, to make it complete
|
||||
if(NOT EXISTS "$ENV{DESTDIR}/etc/libcifpp.conf")
|
||||
if(NOT EXISTS "${CIFPP_ETC_DIR}/libcifpp.conf")
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/libcifpp.conf [[# Uncomment the next line to enable automatic updates
|
||||
# update=true
|
||||
]])
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libcifpp.conf DESTINATION "$ENV{DESTDIR}/etc")
|
||||
install(CODE "message(\"A configuration file has been written to $ENV{DESTDIR}/etc/libcifpp.conf, please edit this file to enable automatic updates\")")
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libcifpp.conf DESTINATION "${CIFPP_ETC_DIR}")
|
||||
install(CODE "message(\"A configuration file has been written to ${CIFPP_ETC_DIR}/libcifpp.conf, please edit this file to enable automatic updates\")")
|
||||
endif()
|
||||
|
||||
target_compile_definitions(cifpp PUBLIC CACHE_DIR="${CIFPP_CACHE_DIR}")
|
||||
@@ -462,7 +464,7 @@ set(CPACK_SOURCE_TGZ ON)
|
||||
set(CPACK_SOURCE_TBZ2 OFF)
|
||||
set(CPACK_SOURCE_TXZ OFF)
|
||||
set(CPACK_SOURCE_TZ OFF)
|
||||
set(CPACK_SOURCE_IGNORE_FILES "/data/components.cif;/build;/.vscode;/.git;/regex")
|
||||
set(CPACK_SOURCE_IGNORE_FILES "/data/components.cif;/build;/.vscode;/.git")
|
||||
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}")
|
||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME})
|
||||
include(CPack)
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
Version 5.0.5
|
||||
- Fix code to work on 32 bit machines
|
||||
|
||||
Version 5.0.4
|
||||
- Revert removal of CIFPP_SHARE_DIR export
|
||||
|
||||
Version 5.0.3
|
||||
- Fix installation of libcifpp into the correct locations
|
||||
|
||||
Version 5.0.2
|
||||
- Fix export of CISPEP records in PDB format
|
||||
- Better support for exporting package_source
|
||||
|
||||
@@ -4,12 +4,9 @@ include(CMakeFindDependencyMacro)
|
||||
find_dependency(Threads)
|
||||
|
||||
find_dependency(ZLIB REQUIRED)
|
||||
find_dependency(LibLZMA REQUIRED)
|
||||
|
||||
INCLUDE("${CMAKE_CURRENT_LIST_DIR}/cifppTargets.cmake")
|
||||
|
||||
set_and_check(CIFPP_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
||||
set_and_check(CIFPP_LIBRARY_DIR "@PACKAGE_LIBRARY_INSTALL_DIR@")
|
||||
set_and_check(CIFPP_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@")
|
||||
set_and_check(CIFPP_SHARE_DIR "@PACKAGE_CIFPP_DATA_DIR@")
|
||||
|
||||
check_required_components(cifpp)
|
||||
|
||||
@@ -38,3 +38,4 @@
|
||||
#include <cif++/model.hpp>
|
||||
|
||||
#include <cif++/pdb/io.hpp>
|
||||
#include <cif++/gzio.hpp>
|
||||
@@ -26,8 +26,8 @@
|
||||
/// whether to use a compressions/decompression algorithm is
|
||||
/// based on the extension of the \a filename argument.
|
||||
|
||||
// This is a stripped down version of the gzio library from
|
||||
// https://github.com/mhekkel/gzio.git
|
||||
// This is a stripped down version of the gxrio library from
|
||||
// https://github.com/mhekkel/gxrio.git
|
||||
// Most notably, the lzma support has been removed since getting
|
||||
// that to work in Windows proved to be too much work.
|
||||
|
||||
@@ -128,15 +128,15 @@ class basic_igzip_streambuf : public basic_streambuf<CharT, Traits>
|
||||
std::swap(m_zstream, rhs.m_zstream);
|
||||
std::swap(m_gzheader, rhs.m_gzheader);
|
||||
|
||||
auto p = std::copy(rhs.gptr(), rhs.egptr(), m_out_buffer.begin());
|
||||
this->setg(m_out_buffer.data(), m_out_buffer.data() + m_out_buffer.size(), p);
|
||||
auto p = std::copy(rhs.gptr(), rhs.egptr(), m_out_buffer.data());
|
||||
this->setg(m_out_buffer.data(), m_out_buffer.data(), p);
|
||||
|
||||
if (m_zstream and m_zstream->avail_in > 0)
|
||||
{
|
||||
auto next_in_offset = m_zstream->next_in - rhs.m_in_buffer.data();
|
||||
std::copy(rhs.m_in_buffer.begin() + next_in_offset,
|
||||
rhs.m_in_buffer.begin() + next_in_offset + m_zstream->avail_in,
|
||||
m_in_buffer.begin());
|
||||
std::copy(rhs.m_in_buffer.data() + next_in_offset,
|
||||
rhs.m_in_buffer.data() + next_in_offset + m_zstream->avail_in,
|
||||
m_in_buffer.data());
|
||||
m_zstream->next_in = m_in_buffer.data();
|
||||
}
|
||||
}
|
||||
@@ -151,15 +151,15 @@ class basic_igzip_streambuf : public basic_streambuf<CharT, Traits>
|
||||
std::swap(m_zstream, rhs.m_zstream);
|
||||
std::swap(m_gzheader, rhs.m_gzheader);
|
||||
|
||||
auto p = std::copy(rhs.gptr(), rhs.egptr(), m_out_buffer.begin());
|
||||
this->setg(m_out_buffer.data(), m_out_buffer.data() + m_out_buffer.size(), p);
|
||||
auto p = std::copy(rhs.gptr(), rhs.egptr(), m_out_buffer.data());
|
||||
this->setg(m_out_buffer.data(), m_out_buffer.data(), p);
|
||||
|
||||
if (m_zstream and m_zstream->avail_in > 0)
|
||||
{
|
||||
auto next_in_offset = m_zstream->next_in - reinterpret_cast<unsigned char *>(rhs.m_in_buffer.data());
|
||||
std::copy(rhs.m_in_buffer.begin() + next_in_offset,
|
||||
rhs.m_in_buffer.begin() + next_in_offset + m_zstream->avail_in,
|
||||
m_in_buffer.begin());
|
||||
std::copy(rhs.m_in_buffer.data() + next_in_offset,
|
||||
rhs.m_in_buffer.data() + next_in_offset + m_zstream->avail_in,
|
||||
m_in_buffer.data());
|
||||
m_zstream->next_in = reinterpret_cast<unsigned char *>(m_in_buffer.data());
|
||||
}
|
||||
|
||||
|
||||
@@ -194,6 +194,7 @@ struct item_value
|
||||
/// \brief constructor
|
||||
item_value(std::string_view text)
|
||||
: m_length(text.length())
|
||||
, m_storage(0)
|
||||
{
|
||||
if (m_length >= kBufferSize)
|
||||
{
|
||||
@@ -210,7 +211,7 @@ struct item_value
|
||||
|
||||
item_value(item_value &&rhs)
|
||||
: m_length(std::exchange(rhs.m_length, 0))
|
||||
, m_data(std::exchange(rhs.m_data, nullptr))
|
||||
, m_storage(std::exchange(rhs.m_storage, 0))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -219,7 +220,7 @@ struct item_value
|
||||
if (this != &rhs)
|
||||
{
|
||||
m_length = std::exchange(rhs.m_length, m_length);
|
||||
m_data = std::exchange(rhs.m_data, m_data);
|
||||
m_storage = std::exchange(rhs.m_storage, m_storage);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
@@ -228,7 +229,7 @@ struct item_value
|
||||
{
|
||||
if (m_length >= kBufferSize)
|
||||
delete[] m_data;
|
||||
m_data = nullptr;
|
||||
m_storage = 0;
|
||||
m_length = 0;
|
||||
}
|
||||
|
||||
@@ -245,6 +246,7 @@ struct item_value
|
||||
{
|
||||
char m_local_data[8];
|
||||
char *m_data;
|
||||
uint64_t m_storage;
|
||||
};
|
||||
|
||||
static constexpr size_t kBufferSize = sizeof(m_local_data);
|
||||
@@ -257,8 +259,7 @@ struct item_value
|
||||
}
|
||||
};
|
||||
|
||||
// static_assert(sizeof(item_value) == 24, "sizeof(item_value) should be 24 bytes");
|
||||
static_assert(sizeof(item_value) == 16, "sizeof(item_value) should be 16 bytes");
|
||||
static_assert(sizeof(item_value) == sizeof(void*) + 8, "sizeof(item_value) should be correct");
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// Transient object to access stored data
|
||||
|
||||
@@ -101,13 +101,13 @@ class atom
|
||||
row_handle row_aniso()
|
||||
{
|
||||
auto cat = m_db.get("atom_site_anisotrop");
|
||||
return cat ? cat->find1(key("id") == m_id) : row_handle{};
|
||||
return cat ? cat->operator[]({ {"id", m_id} }) : row_handle{};
|
||||
}
|
||||
|
||||
const row_handle row_aniso() const
|
||||
{
|
||||
auto cat = m_db.get("atom_site_anisotrop");
|
||||
return cat ? cat->find1(key("id") == m_id) : row_handle{};
|
||||
return cat ? cat->operator[]({ {"id", m_id} }) : row_handle{};
|
||||
}
|
||||
|
||||
const datablock &m_db;
|
||||
|
||||
@@ -8,6 +8,6 @@ Name: libcifpp
|
||||
Description: C++ library for the manipulation of mmCIF files.
|
||||
Version: @PACKAGE_VERSION@
|
||||
|
||||
Requires.private: zlib, liblzma
|
||||
Requires.private: zlib
|
||||
Libs: -L${libdir} -lcifpp
|
||||
Cflags: -I${includedir} -pthread
|
||||
|
||||
@@ -6211,7 +6211,16 @@ file read(std::istream &is)
|
||||
if (ch == 'h' or ch == 'H')
|
||||
ReadPDBFile(is, result);
|
||||
else
|
||||
result.load(is);
|
||||
{
|
||||
try
|
||||
{
|
||||
result.load(is);
|
||||
}
|
||||
catch (const std::exception &ex)
|
||||
{
|
||||
std::throw_with_nested(std::runtime_error("Since the file did not start with a valid PDB HEADER line mmCIF was assumed, but that failed."));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Must be a PDB like file, right?
|
||||
|
||||
@@ -320,7 +320,7 @@ struct tls_selection_not : public tls_selection
|
||||
for (auto &r : residues)
|
||||
r.selected = not r.selected;
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
{
|
||||
std::cout << std::string(indentLevel * 2, ' ') << "NOT" << std::endl;
|
||||
dump_selection(residues, indentLevel);
|
||||
@@ -339,7 +339,7 @@ struct tls_selection_all : public tls_selection
|
||||
for (auto &r : residues)
|
||||
r.selected = true;
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
{
|
||||
std::cout << std::string(indentLevel * 2, ' ') << "ALL" << std::endl;
|
||||
dump_selection(residues, indentLevel);
|
||||
@@ -361,7 +361,7 @@ struct tls_selection_chain : public tls_selection_all
|
||||
for (auto &r : residues)
|
||||
r.selected = allChains or r.chainID == m_chain;
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
{
|
||||
std::cout << std::string(indentLevel * 2, ' ') << "CHAIN " << m_chain << std::endl;
|
||||
dump_selection(residues, indentLevel);
|
||||
@@ -384,7 +384,7 @@ struct tls_selection_res_id : public tls_selection_all
|
||||
for (auto &r : residues)
|
||||
r.selected = r.seqNr == m_seq_nr and r.iCode == m_icode;
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
{
|
||||
std::cout << std::string(indentLevel * 2, ' ') << "ResID " << m_seq_nr << (m_icode ? std::string{ m_icode } : "") << std::endl;
|
||||
dump_selection(residues, indentLevel);
|
||||
@@ -411,7 +411,7 @@ struct tls_selection_range_seq : public tls_selection_all
|
||||
(r.seqNr <= m_last or m_last == kResidueNrWildcard));
|
||||
}
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
{
|
||||
std::cout << std::string(indentLevel * 2, ' ') << "Range " << m_first << ':' << m_last << std::endl;
|
||||
dump_selection(residues, indentLevel);
|
||||
@@ -461,7 +461,7 @@ struct tls_selection_range_id : public tls_selection_all
|
||||
}
|
||||
}
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
{
|
||||
std::cout << std::string(indentLevel * 2, ' ') << "Through " << m_first << ':' << m_last << std::endl;
|
||||
dump_selection(residues, indentLevel);
|
||||
@@ -502,7 +502,7 @@ struct tls_selection_union : public tls_selection
|
||||
for (auto ai = a.begin(), bi = b.begin(), ri = residues.begin(); ri != residues.end(); ++ai, ++bi, ++ri)
|
||||
ri->selected = ai->selected or bi->selected;
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
{
|
||||
std::cout << std::string(indentLevel * 2, ' ') << "Union" << std::endl;
|
||||
dump_selection(residues, indentLevel);
|
||||
@@ -543,7 +543,7 @@ struct tls_selection_intersection : public tls_selection
|
||||
for (auto ai = a.begin(), bi = b.begin(), ri = residues.begin(); ri != residues.end(); ++ai, ++bi, ++ri)
|
||||
ri->selected = ai->selected and bi->selected;
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
{
|
||||
std::cout << std::string(indentLevel * 2, ' ') << "Intersection" << std::endl;
|
||||
dump_selection(residues, indentLevel);
|
||||
@@ -567,7 +567,7 @@ struct tls_selection_by_name : public tls_selection_all
|
||||
for (auto &r : residues)
|
||||
r.selected = r.name == m_name;
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
{
|
||||
std::cout << std::string(indentLevel * 2, ' ') << "Name " << m_name << std::endl;
|
||||
dump_selection(residues, indentLevel);
|
||||
@@ -595,7 +595,7 @@ struct tls_selection_by_element : public tls_selection_all
|
||||
for (auto &r : residues)
|
||||
r.selected = iequals(r.name, m_element);
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
{
|
||||
std::cout << std::string(indentLevel * 2, ' ') << "Element " << m_element << std::endl;
|
||||
dump_selection(residues, indentLevel);
|
||||
@@ -1404,7 +1404,7 @@ std::tuple<std::string, int> TLSSelectionParserImplBuster::ParseAtom()
|
||||
match(':');
|
||||
std::string atom = m_value_s;
|
||||
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
std::cerr << "Warning: ignoring atom ID '" << atom << "' in TLS selection" << std::endl;
|
||||
|
||||
match(bt_IDENT);
|
||||
@@ -1958,14 +1958,14 @@ std::unique_ptr<tls_selection> parse_tls_selection_details(const std::string &pr
|
||||
|
||||
if (not result)
|
||||
{
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
std::cerr << "Falling back to old BUSTER" << std::endl;
|
||||
result = busterOld.Parse(selection);
|
||||
}
|
||||
|
||||
if (not result)
|
||||
{
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
std::cerr << "Falling back to PHENIX" << std::endl;
|
||||
result = phenix.Parse(selection);
|
||||
}
|
||||
@@ -1976,35 +1976,35 @@ std::unique_ptr<tls_selection> parse_tls_selection_details(const std::string &pr
|
||||
|
||||
if (not result)
|
||||
{
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
std::cerr << "Falling back to BUSTER" << std::endl;
|
||||
result = buster.Parse(selection);
|
||||
}
|
||||
|
||||
if (not result)
|
||||
{
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
std::cerr << "Falling back to old BUSTER" << std::endl;
|
||||
result = busterOld.Parse(selection);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
std::cerr << "No known program specified, trying PHENIX" << std::endl;
|
||||
|
||||
result = phenix.Parse(selection);
|
||||
|
||||
if (not result)
|
||||
{
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
std::cerr << "Falling back to BUSTER" << std::endl;
|
||||
result = buster.Parse(selection);
|
||||
}
|
||||
|
||||
if (not result)
|
||||
{
|
||||
if (cif::VERBOSE)
|
||||
if (cif::VERBOSE > 0)
|
||||
std::cerr << "Falling back to old BUSTER" << std::endl;
|
||||
result = busterOld.Parse(selection);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
@@ -7,8 +7,8 @@ if [ "$EUID" -ne 0 ]
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -f /etc/libcifpp.conf ] ; then
|
||||
. /etc/libcifpp.conf
|
||||
if [ -f "@CIFPP_ETC_DIR@/libcifpp.conf" ] ; then
|
||||
. "@CIFPP_ETC_DIR@/libcifpp.conf"
|
||||
fi
|
||||
|
||||
# check to see if we're supposed to run at all
|
||||
@@ -17,7 +17,7 @@ if [ "$update" != "true" ] ; then
|
||||
fi
|
||||
|
||||
# if cache directory doesn't exist, exit.
|
||||
if ! [ -d @CIFPP_CACHE_DIR@ ]; then
|
||||
if ! [ -d "@CIFPP_CACHE_DIR@" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
@@ -46,10 +46,10 @@ fetch_dictionary () {
|
||||
fetch_dictionary "@CIFPP_CACHE_DIR@/mmcif_pdbx.dic" "https://mmcif.wwpdb.org/dictionaries/ascii/mmcif_pdbx_v50.dic.gz"
|
||||
fetch_dictionary "@CIFPP_CACHE_DIR@/components.cif" "ftp://ftp.wwpdb.org/pub/pdb/data/monomers/components.cif.gz"
|
||||
|
||||
# notify subscribers
|
||||
# notify subscribers, will fail on FreeBSD
|
||||
|
||||
if [ -d /etc/libcifpp/cache-update.d ] && [ -x /bin/run-parts ]; then
|
||||
run-parts --arg "@CIFPP_CACHE_DIR@" -- /etc/libcifpp/cache-update.d
|
||||
if [ -d "@CIFPP_ETC_DIR@/libcifpp/cache-update.d" ] && [ -x /bin/run-parts ]; then
|
||||
run-parts --arg "@CIFPP_CACHE_DIR@" -- "@CIFPP_ETC_DIR@/libcifpp/cache-update.d"
|
||||
fi
|
||||
|
||||
wget -O/var/cache/libcifpp/mmcif_ma.dic "https://github.com/ihmwg/ModelCIF/raw/master/dist/mmcif_ma.dic"
|
||||
wget -O"@CIFPP_CACHE_DIR@/mmcif_ma.dic" "https://github.com/ihmwg/ModelCIF/raw/master/dist/mmcif_ma.dic"
|
||||
|
||||
Reference in New Issue
Block a user