From 3d8639dd601bbeaefd1baf469f1aff2ad8db2f6b Mon Sep 17 00:00:00 2001 From: Squidly271 Date: Sat, 31 Aug 2019 21:51:48 -0400 Subject: [PATCH] Integrate CA's Plugin Helpers --- .../dynamix.plugin.manager/PluginHelpers.page | 90 +++++++++++++++++++ .../scripts/PluginAPI.php | 51 +++++++++++ 2 files changed, 141 insertions(+) create mode 100644 plugins/dynamix.plugin.manager/PluginHelpers.page create mode 100644 plugins/dynamix.plugin.manager/scripts/PluginAPI.php diff --git a/plugins/dynamix.plugin.manager/PluginHelpers.page b/plugins/dynamix.plugin.manager/PluginHelpers.page new file mode 100644 index 000000000..6c99733b3 --- /dev/null +++ b/plugins/dynamix.plugin.manager/PluginHelpers.page @@ -0,0 +1,90 @@ +Menu='Buttons' +Link='nav-user' +--- + + + \ No newline at end of file diff --git a/plugins/dynamix.plugin.manager/scripts/PluginAPI.php b/plugins/dynamix.plugin.manager/scripts/PluginAPI.php new file mode 100644 index 000000000..1ece16feb --- /dev/null +++ b/plugins/dynamix.plugin.manager/scripts/PluginAPI.php @@ -0,0 +1,51 @@ +/dev/null 2>&1 &" : "2>/dev/null"), $out, $exit_code ); + return ($exit_code === 0 ) ? implode("\n", $out) : false; +} + +$options = $_POST['options']; +$plugin = $options['plugin']; + +if ( ! $plugin || ! file_exists("/var/log/plugins/$plugin") ) { + echo json_encode(array("updateAvailable"=>false)); + return; +} + +exec("mkdir -p /tmp/plugins"); +@unlink("/tmp/plugins/$plugin"); +$url = @plugin("pluginURL","/boot/config/plugins/$plugin"); +download_url($url,"/tmp/plugins/$plugin"); + +$changes = @plugin("changes","/tmp/plugins/$plugin"); +$version = @plugin("version","/tmp/plugins/$plugin"); +$installedVersion = @plugin("version","/boot/config/plugins/$plugin"); +$min = @plugin("min","/tmp/plugins/$plugin") ?: "6.4.0"; +if ( $changes ) { + file_put_contents("/tmp/plugins/".pathinfo($plugin, PATHINFO_FILENAME).".txt",$changes); +} else { + @unlink("/tmp/plugins/".pathinfo($plugin, PATHINFO_FILENAME).".txt"); +} + +$update = false; +if ( strcmp($version,$installedVersion) > 0 ) { + $unraid = parse_ini_file("/etc/unraid-version"); + $update = (version_compare($min,$unraid['version'],">")) ? false : true; +} + +echo json_encode(array("updateAvailable" => $update,"version" => $version,"min"=>$min,"changes"=>$changes,"installedVersion"=>$installedVersion)); + +?> \ No newline at end of file