int get_seafile_data_dir(const QString& ccnet_dir, QString *ret) { QFile seafile_ini(QDir(ccnet_dir).filePath("seafile.ini")); if (!seafile_ini.exists()) { return -1; } if (!seafile_ini.open(QIODevice::ReadOnly | QIODevice::Text)) { return -1; } QTextStream input(&seafile_ini); input.setCodec("UTF-8"); if (input.atEnd()) { return -1; } QString path = input.readLine(); if (!QFileInfo(QDir(path).filePath("repo.db")).exists()) { return -1; } *ret = path; return 0; }
int Configurator::readSeafileIni(QString *content) { // First try SEAFILE_DATA_DIR const char *env = g_getenv("SEAFILE_DATA_DIR"); if (env) { *content = QString::fromUtf8(env); return 0; } QFile seafile_ini(QDir(ccnet_dir_).filePath("seafile.ini")); if (!seafile_ini.exists()) { return -1; } if (!seafile_ini.open(QIODevice::ReadOnly | QIODevice::Text)) { seafApplet->errorAndExit(tr("failed to read %1").arg(seafile_ini.fileName())); } QTextStream input(&seafile_ini); input.setCodec("UTF-8"); if (input.atEnd()) { return -1; } *content = input.readLine(); return 0; }
void Configurator::validateExistingConfig() { QFile seafile_ini(QDir(ccnet_dir_).filePath("seafile.ini")); if (!seafile_ini.exists()) { initConfig(); return; } if (readSeafileIni(&seafile_dir_) < 0 || !QDir(seafile_dir_).exists()) { initSeafile(); return; } QDir d(seafile_dir_); #if !defined(Q_OS_WIN32) QString old_client_wt = d.filePath("../seafile/"); if (QFile(old_client_wt).exists()) { // old client worktree_ = QFileInfo(old_client_wt).absoluteFilePath(); return; } #endif d.cdUp(); worktree_ = d.absolutePath(); }
void Configurator::onSeafileDirSet(const QString& path) { // Write seafile dir to <ccnet dir>/seafile.ini QFile seafile_ini(QDir(ccnet_dir_).filePath("seafile.ini")); if (!seafile_ini.open(QIODevice::WriteOnly)) { return; } seafile_ini.write(path.toUtf8().data()); seafile_dir_ = path; QDir d(path); d.cdUp(); worktree_ = d.absolutePath(); setSeafileDirAttributes(); }