mirror of
https://github.com/bombsquad-community/plugin-manager.git
synced 2025-11-07 17:36:00 +00:00
ci: sort plugin versions
This commit is contained in:
parent
a9695e1622
commit
a2a7d87c1c
1 changed files with 27 additions and 9 deletions
|
|
@ -6,6 +6,10 @@ import re
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
|
|
||||||
|
def get_comparable_version_tuple_from_string(version_string):
|
||||||
|
return tuple(map(int, version_string.split(".")))
|
||||||
|
|
||||||
|
|
||||||
class PluginVersionMetadata:
|
class PluginVersionMetadata:
|
||||||
def __init__(self, plugin_name, version_name, plugin_path, from_json={}):
|
def __init__(self, plugin_name, version_name, plugin_path, from_json={}):
|
||||||
self.plugin_name = plugin_name
|
self.plugin_name = plugin_name
|
||||||
|
|
@ -69,6 +73,20 @@ class PluginVersionMetadata:
|
||||||
md5sum = hashlib.md5(self._content).hexdigest()
|
md5sum = hashlib.md5(self._content).hexdigest()
|
||||||
return md5sum
|
return md5sum
|
||||||
|
|
||||||
|
def sort_versions(self):
|
||||||
|
if self._content is None:
|
||||||
|
with open(self.plugin_path, "rb") as fin:
|
||||||
|
self._content = fin.read()
|
||||||
|
|
||||||
|
versions = self.json["plugins"][self.plugin_name]["versions"]
|
||||||
|
sorted_versions = dict(sorted(
|
||||||
|
tuple(versions.items()),
|
||||||
|
key=lambda version: get_comparable_version_tuple_from_string(version[0]),
|
||||||
|
reverse=True,
|
||||||
|
))
|
||||||
|
self.json["plugins"][self.plugin_name]["versions"] = sorted_versions
|
||||||
|
return self
|
||||||
|
|
||||||
|
|
||||||
class CategoryVersionMetadata:
|
class CategoryVersionMetadata:
|
||||||
def __init__(self, category_metadata_base):
|
def __init__(self, category_metadata_base):
|
||||||
|
|
@ -79,15 +97,14 @@ class CategoryVersionMetadata:
|
||||||
|
|
||||||
def get_plugins_having_null_version_values(self):
|
def get_plugins_having_null_version_values(self):
|
||||||
for plugin_name, plugin_metadata in self.category_metadata["plugins"].items():
|
for plugin_name, plugin_metadata in self.category_metadata["plugins"].items():
|
||||||
latest_version_name, latest_version_metadata = tuple(
|
for version_name, version_metadata in plugin_metadata["versions"].items():
|
||||||
plugin_metadata["versions"].items())[0]
|
if version_metadata is None:
|
||||||
if latest_version_metadata is None:
|
plugin_path = f"{os.path.join(self.category_metadata_base, f'{plugin_name}.py')}"
|
||||||
plugin_path = f"{os.path.join(self.category_metadata_base, f'{plugin_name}.py')}"
|
yield PluginVersionMetadata(
|
||||||
yield PluginVersionMetadata(
|
plugin_name,
|
||||||
plugin_name,
|
version_name,
|
||||||
latest_version_name,
|
plugin_path,
|
||||||
plugin_path,
|
)
|
||||||
)
|
|
||||||
|
|
||||||
def get_plugins_having_diff_last_md5sum_version_values(self):
|
def get_plugins_having_diff_last_md5sum_version_values(self):
|
||||||
for plugin_name, plugin_metadata in self.category_metadata["plugins"].items():
|
for plugin_name, plugin_metadata in self.category_metadata["plugins"].items():
|
||||||
|
|
@ -121,6 +138,7 @@ class CategoryVersionMetadata:
|
||||||
.set_commit_sha(commit_sha)
|
.set_commit_sha(commit_sha)
|
||||||
.set_released_on(today)
|
.set_released_on(today)
|
||||||
.set_md5sum()
|
.set_md5sum()
|
||||||
|
.sort_versions()
|
||||||
.json
|
.json
|
||||||
)
|
)
|
||||||
return category_json
|
return category_json
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue