mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-28 08:03:36 +00:00
Combined module management actions into a single file, so it should be easier to add new optional modules.
This commit is contained in:
parent
411785eb3f
commit
c9d58ee73d
@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Usage: module-disable python_root module
|
||||
# This will change when we switch to using aptitude.
|
||||
|
||||
# TODO: Replace this with "aptitude purge plinth-<module>"
|
||||
case "$2" in
|
||||
owncloud)
|
||||
if [ -e "$1"/modules/owncloud.py ] ; then
|
||||
rm -f "$1"/modules/owncloud.py
|
||||
echo "disabled owncloud"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Usage: module-enable python_root module
|
||||
# This will change when we switch to using aptitude.
|
||||
|
||||
# TODO: Replace this with "aptitude install plinth-<module>"
|
||||
case "$2" in
|
||||
owncloud)
|
||||
if [ ! -e "$1"/modules/owncloud.py ] ; then
|
||||
ln -s "$1"/modules/installed/apps/owncloud.py "$1"/modules/owncloud.py
|
||||
echo "enabled owncloud"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@ -1,7 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Usage: module-list-available
|
||||
# This will change when we switch to using aptitude.
|
||||
|
||||
# TODO: Replace this with something like "aptitude search -F %p plinth-"
|
||||
echo "owncloud"
|
||||
@ -1,9 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Usage: module-list-enabled python_root
|
||||
# This will change when we switch to using aptitude.
|
||||
|
||||
# TODO: Replace this with something like 'aptitude search -F %p | grep "plinth-"'
|
||||
if [ -e "$1"/modules/owncloud.py ] ; then
|
||||
echo "owncloud"
|
||||
fi
|
||||
59
actions/module-manager
Executable file
59
actions/module-manager
Executable file
@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Usage:
|
||||
# module-manager list-available
|
||||
# module-manager list-enabled <python_root>
|
||||
# module-manager enable <python_root> <module_name>
|
||||
# module-manager disable <python_root> <module_name>
|
||||
|
||||
# associate array with mapping between module names and install paths
|
||||
# (relative to <python_root>/modules/)
|
||||
declare -A modules=( ["owncloud"]="installed/apps/owncloud.py" )
|
||||
|
||||
case "$1" in
|
||||
"list-available")
|
||||
# TODO: Replace this with something like "aptitude search -F %p plinth-"
|
||||
echo "${!modules[@]}"
|
||||
;;
|
||||
|
||||
"list-enabled")
|
||||
# TODO: Replace this with something like 'aptitude search -F %p | grep "plinth-"'
|
||||
for module in "${!modules[@]}"
|
||||
do
|
||||
if [ -e "$2"/modules/"$module".py ] ; then
|
||||
echo "$module"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
|
||||
"enable")
|
||||
# TODO: Replace this with "aptitude install plinth-<module>"
|
||||
for module in "${!modules[@]}"
|
||||
do
|
||||
if [ "$3" == "$module" ] ; then
|
||||
if [ ! -e "$2"/modules/"$3".py ] ; then
|
||||
ln -s "$2"/modules/"${modules["$3"]}" "$2"/modules/"$3".py
|
||||
RETVAL=$?
|
||||
[ $RETVAL -eq 0 ] && echo "enabled" "$3"
|
||||
[ $RETVAL -ne 0 ] && echo "failed to enable" "$3"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
;;
|
||||
|
||||
"disable")
|
||||
# TODO: Replace this with "aptitude purge plinth-<module>"
|
||||
for module in "${!modules[@]}"
|
||||
do
|
||||
if [ "$3" == "$module" ] ; then
|
||||
if [ -e "$2"/modules/"$3".py ] ; then
|
||||
rm -f "$2"/modules/"$3".py
|
||||
RETVAL=$?
|
||||
[ $RETVAL -eq 0 ] && echo "disabled" "$3"
|
||||
[ $RETVAL -ne 0 ] && echo "failed to disable" "$3"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -18,12 +18,13 @@ class Packages(PagePlugin, FormPlugin):
|
||||
@cherrypy.expose
|
||||
@require()
|
||||
def index(self, *args, **kwargs):
|
||||
output, error = actions.run("module-list-available")
|
||||
output, error = actions.run("module-manager", ["list-available"])
|
||||
if error:
|
||||
raise Exception("something is wrong: " + error)
|
||||
modules_available = output.split()
|
||||
|
||||
output, error = actions.run("module-list-enabled", cfg.python_root)
|
||||
output, error = actions.run("module-manager", \
|
||||
["list-enabled", cfg.python_root])
|
||||
if error:
|
||||
raise Exception("something is wrong: " + error)
|
||||
modules_enabled = output.split()
|
||||
@ -35,13 +36,15 @@ class Packages(PagePlugin, FormPlugin):
|
||||
if module in modules_enabled:
|
||||
if module not in modules_selected:
|
||||
output, error = actions.superuser_run(\
|
||||
"module-disable", [cfg.python_root, module])
|
||||
"module-manager",\
|
||||
["disable", cfg.python_root, module])
|
||||
# TODO: need a smoother way for plinth
|
||||
# to unload the module
|
||||
else:
|
||||
if module in modules_selected:
|
||||
output, error = actions.superuser_run(\
|
||||
"module-enable", [cfg.python_root, module])
|
||||
"module-manager",\
|
||||
["enable", cfg.python_root, module])
|
||||
# TODO: need to get plinth to load
|
||||
# the module we just enabled
|
||||
|
||||
@ -57,12 +60,13 @@ class Packages(PagePlugin, FormPlugin):
|
||||
return self.fill_template(title=_("Add/Remove Plugins"), main=main, sidebar_right=sidebar_right)
|
||||
|
||||
def form(self, message=None, *args, **kwargs):
|
||||
output, error = actions.run("module-list-available")
|
||||
output, error = actions.run("module-manager", ["list-available"])
|
||||
if error:
|
||||
raise Exception("something is wrong: " + error)
|
||||
modules_available = output.split()
|
||||
|
||||
output, error = actions.run("module-list-enabled", cfg.python_root)
|
||||
output, error = actions.run("module-manager",\
|
||||
["list-enabled", cfg.python_root])
|
||||
if error:
|
||||
raise Exception("something is wrong: " + error)
|
||||
modules_enabled = output.split()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user