diff options
Diffstat (limited to 'util')
-rwxr-xr-x | util/addons | 132 | ||||
-rwxr-xr-x | util/hz | 36 |
2 files changed, 168 insertions, 0 deletions
diff --git a/util/addons b/util/addons new file mode 100755 index 000000000..2c128c50e --- /dev/null +++ b/util/addons @@ -0,0 +1,132 @@ +#!/usr/bin/env php +<?php + +// Hubzilla plugin management utility + +function usage() { +echo <<< EOT + Usage: + util/addons list # list installed addons + util/addons list all # list all addons (*)= installed, (!)= disabled due to version compatibility + util/addons install foo # install addon named 'foo' + util/addons uninstall foo # uninstall addon named 'foo' + +EOT; +} + +require_once('include/cli_startup.php'); + +cli_startup(); +$a = get_app(); + + $plugs = get_config('system', 'addon'); + $plugins_arr = array(); + + if($plugs) + $plugins_arr = explode(',', str_replace(' ', '', $plugs)); + + $a->plugins = $plugins_arr; + + $plugins = array(); + $files = glob('addon/*/'); + if($files) { + foreach($files as $file) { + if(is_dir($file)){ + list($tmp, $id) = array_map('trim', explode('/', $file)); + $info = get_plugin_info($id); + $enabled = in_array($id,$a->plugins); + $x = check_plugin_versions($info); + if($enabled && ! $x) { + $enabled = false; + $idz = array_search($id, $a->plugins); + if ($idz !== false) { + unset($a->plugins[$idz]); + uninstall_plugin($id); + set_config("system","addon", implode(", ",$a->plugins)); + } + } + $info['disabled'] = 1-intval($x); + + $plugins[] = array( $id, (($enabled)? '*' : '') , $info); + } + } + } + +if($argc == 1) { + usage(); + killme(); +} + + +if($argc == 2 && $argv[1] === 'list') { + if($plugins) { + foreach($plugins as $p) { + if($p[1]) { + echo $p[0] . "\n"; + } + } + } + killme(); +} + +if($argc == 3 && $argv[1] === 'list' && $argv[2] === 'all') { + + if($plugins) { + foreach($plugins as $p) { + echo $p[0] . (($p[1]) ? $p[1] : (($p[2]['disabled']) ? '!' : '')) . "\n"; + } + } + + killme(); +} + + +if($argc == 3 && $argv[1] === 'install') { + + if($plugins) { + foreach($plugins as $p) { + if($p[0] === $argv[2]) { + if($p[1]) + echo $p[0] . ' already installed.' . "\n"; + elseif($p[2]['disabled']) + echo $p[0] . ' disabled (version compatibility).' . "\n"; + else { + $a->plugins[] = $p[0]; + install_plugin($p[0]); + set_config("system","addon", implode(", ",$a->plugins)); + echo $p[0] . ' installed.' . "\n"; + } + } + } + } + + killme(); +} + + + +if($argc == 3 && $argv[1] === 'uninstall') { + + if($plugins) { + foreach($plugins as $p) { + if($p[0] === $argv[2]) { + if(! $p[1]) + echo $p[0] . ' not installed.' . "\n"; + elseif($p[2]['disabled']) + echo $p[0] . ' disabled (version compatibility).' . "\n"; + else { + $idx = array_search($p[0], $a->plugins); + if ($idx !== false) + unset($a->plugins[$idx]); + uninstall_plugin($p[0]); + set_config("system","addon", implode(", ",$a->plugins)); + echo $p[0] . ' uninstalled.' . "\n"; + } + } + } + } + + killme(); +} + + diff --git a/util/hz b/util/hz new file mode 100755 index 000000000..baa5bfb55 --- /dev/null +++ b/util/hz @@ -0,0 +1,36 @@ +#!/bin/bash + +# Simple, minimalist command line tool to post status to hubzilla via the API. Requires curl. +# Put it in your path, and sneeze your statuses to the zot network from your shell. + +CONF=${HOME}/.hubzilla + +usage () { +echo "usage: hz [conffile]" +echo "Create a conf file, either in .hubzilla in your home directory, or supplied as an arg" +echo " USER=youruserame " +echo " PASS=yourpass" +echo " HUB=your.hub.domain.org" +echo +echo "Type \"hz\" (with or without a conf file as an arg), then enter your message. Hit ENTER to send." + +} + +CUR=`which curl` + +[ "$CUR" ] || { echo "curl is not installed or on your path"; usage; exit 1; } + +[ "$1" ] && CONF="$1" + + +. ${CONF} + +[ "$USER" ] || { echo "no USER"; usage; exit 1; } +[ "$PASS" ] || { echo "no PASS"; usage; exit 1; } +[ "$HUB" ] || { echo "no HUB"; usage; exit 1; } + +echo "enter your message to be posted as $USER @ $HUB, then hit ENTER to send:" + +(read MSG; curl -ssl -u${USER}:${PASS} --data-urlencode "status=${MSG}" https://${HUB}/api/statuses/update ) + + |