'https://raw.github.com/limetech/\&name;/master/\&name;.plg', 'next' => 'https://s3.amazonaws.com/dnld.lime-technology.com/\&category;/\&name;.plg']; foreach (glob("/var/log/plugins/*.plg",GLOB_NOSORT) as $plugin_link) { //only consider symlinks $plugin_file = @readlink($plugin_link); if ($plugin_file === false) continue; //plugin name $name = plugin('name',$plugin_file) ?: basename($plugin_file,".plg"); $custom = in_array($name,$builtin); //switch between system and custom plugins if (($system && !$custom) || (!$system && $custom)) continue; //forced plugin check $checked = check_plugin("$name.plg"); //OS update? $os = $system && $name==$builtin[0]; $toggle = false; //toggle stable/next release? if ($os && $release) { $toggle = plugin('version',$plugin_file); $cat = strpos($toggle,'rc')!==false ? 'stable' : 'next'; $tmp_plg = "$name-.plg"; $tmp_file = "/var/tmp/$name.plg"; copy($plugin_file,$tmp_file); exec("sed -ri 's|^(|' $tmp_file"); exec("sed -ri 's|^(|' $tmp_file"); symlink($tmp_file,"/var/log/plugins/$tmp_plg"); if (check_plugin($tmp_plg)) { copy("/tmp/plugins/$tmp_plg",$tmp_file); $plugin_file = $tmp_file; } } //link/icon $icon = icon($name); if ($launch = plugin('launch',$plugin_file)) $link = ""; else $link = ""; //description $readme = "plugins/{$name}/README.md"; if (file_exists($readme)) $desc = Markdown(file_get_contents($readme)); else $desc = Markdown("**{$name}**"); //author $author = plugin('author',$plugin_file) ?: "anonymous"; //version $version = plugin('version',$plugin_file) ?: "unknown"; //category $cat = strpos($version,'rc')!==false ? 'next' : 'stable'; //status $status = 'unknown'; $changes_file = $plugin_file; $URL = plugin('pluginURL',$plugin_file); if ($URL !== false) { $filename = "/tmp/plugins/".(($os && $release) ? $tmp_plg : basename($URL)); if ($checked && file_exists($filename)) { if ($toggle && $toggle != $version) { $status = make_link('install',$plugin_file,'forced'); } else { $latest = plugin('version',$filename); if (strcmp($latest,$version) > 0) { $unRAID = plugin('unRAID',$filename); if ($unRAID === false || version_compare($current['version'],$unRAID,'>=')) { $version .= "
{$latest}"; $status = make_link("update",basename($plugin_file)); $changes_file = $filename; } else { $status = "up-to-date"; } } else { $status = "up-to-date"; } } } } $changes = plugin('changes',$changes_file); if ($changes !== false) { $txtfile = "/tmp/plugins/".basename($plugin_file,'.plg').".txt"; file_put_contents($txtfile,$changes); $version .= " "; } //write plugin information $empty = false; echo ""; echo "

{$link}

"; echo "{$desc}"; echo "{$author}"; echo "{$version}"; echo "{$status}"; echo ""; if ($system) { if ($os) { echo ""; } } else { echo make_link('remove',basename($plugin_file)); } echo ""; echo ""; //remove temporary symlink @unlink("/var/log/plugins/$tmp_plg"); } if ($empty) echo " No plugins installed"; ?>