diff options
author | louis <louis.braun@gmx.de> | 2015-07-17 17:37:16 +0200 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2015-07-17 17:37:16 +0200 |
commit | c4b49c6cb41a965bf50e7f31f57b7cfd8627dd77 (patch) | |
tree | b1a94e2f83d11f90a40348598a878bdcb3af4d0c /config.c | |
parent | 10e37f6b8e8c946cecfefbaae8b14369e695d8e9 (diff) | |
download | vdr-plugin-skindesigner-c4b49c6cb41a965bf50e7f31f57b7cfd8627dd77.tar.gz vdr-plugin-skindesigner-c4b49c6cb41a965bf50e7f31f57b7cfd8627dd77.tar.bz2 |
added version check for skinrepositiries
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 38 |
1 files changed, 37 insertions, 1 deletions
@@ -330,7 +330,43 @@ void cDesignerConfig::SetSkinSetupParameters(void) { void cDesignerConfig::ReadSkinRepos(void) { skinRepos.Init(*installerSkinPath); skinRepos.Read(*installerSkinPath); - dsyslog("skindesigner: read %d skinrepositories from %s", skinRepos.Count(), *skinPath); + dsyslog("skindesigner: read %d skinrepositories from %s", skinRepos.Count(), *installerSkinPath); +} + +bool cDesignerConfig::CheckVersion(string name, string &neededVersion) { + cSkinRepo *repo = skinRepos.GetRepo(name); + if (!repo) + return false; + neededVersion = repo->MinSDVersion(); + + splitstring minVer(neededVersion.c_str()); + vector<string> tokensMinVer = minVer.split('.', 1); + if (tokensMinVer.size() != 3) { + esyslog("skindesigner: incorrect minimumskindesignerversion definition: %s", neededVersion.c_str()); + return false; + } + splitstring ver(version.c_str()); + vector<string> tokensVer = ver.split('.', 1); + if (tokensVer.size() != 3) { + esyslog("skindesigner: incorrect version definition: %s", version.c_str()); + return false; + } + + int minVerMajor = atoi(tokensMinVer[0].c_str()); + int minVerMinor = atoi(tokensMinVer[1].c_str()); + int minVerMikro = atoi(tokensMinVer[2].c_str()); + int verMajor = atoi(tokensVer[0].c_str()); + int verMinor = atoi(tokensVer[1].c_str()); + int verMikro = atoi(tokensVer[2].c_str()); + + if (minVerMajor > verMajor) { + return false; + } else if (minVerMinor > verMinor) { + return false; + } else if (minVerMikro > verMikro) { + return false; + } + return true; } bool cDesignerConfig::SkinInstalled(string name) { |