From 167dbec0f5b66536e4096cd1d4d335200586feba Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 4 Aug 2006 15:54:28 +0200 Subject: [PATCH] Add a script to install external activities --- .gitignore | 2 +- Makefile.am | 2 +- configure.ac | 2 ++ sugar/setup.py | 12 +++++++----- tools/Makefile.am | 1 + tools/sugar-setup-activity.in | 10 ++++++++++ 6 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 tools/Makefile.am create mode 100644 tools/sugar-setup-activity.in diff --git a/.gitignore b/.gitignore index c83d665a..60a7497b 100644 --- a/.gitignore +++ b/.gitignore @@ -32,5 +32,5 @@ po/POTFILES po/stamp-it po/sugar.pot po/*.gmo - sugar/__installed__.py +tools/sugar-setup-activity diff --git a/Makefile.am b/Makefile.am index 68fe6fa5..d1b06400 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = activities shell sugar +SUBDIRS = activities shell sugar tools dbusconfdir = $(pkgdatadir) dbusconf_DATA = dbus-installed.conf diff --git a/configure.ac b/configure.ac index 46598fd2..bbb4394b 100644 --- a/configure.ac +++ b/configure.ac @@ -40,4 +40,6 @@ sugar/p2p/Makefile sugar/p2p/model/Makefile sugar/presence/Makefile po/Makefile.in +tools/Makefile +tools/sugar-setup-activity ]) diff --git a/sugar/setup.py b/sugar/setup.py index b60112e1..9803f2d4 100755 --- a/sugar/setup.py +++ b/sugar/setup.py @@ -11,8 +11,9 @@ class ServiceParser(ConfigParser): def optionxform(self, option): return option -def _install_activity(activity_dir, filename, dest_path, bin): - source = os.path.join(activity_dir, filename) +def setup_activity(source, dest_path, bin): + """Copy an activity to the destination path and setup it""" + filename = os.path.basename(source) dest = os.path.join(dest_path, filename) print 'Install ' + filename + ' ...' shutil.copyfile(source, dest) @@ -53,7 +54,7 @@ def _install_activity(activity_dir, filename, dest_path, bin): service_cp.write(fileobject) fileobject.close() -def install_activities(source_path, dest_path, bin): +def setup_activities(source_path, dest_path, bin): """Scan a directory for activities and install them.""" if os.path.isdir(source_path): for filename in os.listdir(source_path): @@ -61,7 +62,8 @@ def install_activities(source_path, dest_path, bin): if os.path.isdir(activity_dir): for filename in os.listdir(activity_dir): if filename.endswith(".activity"): - _install_activity(activity_dir, filename, dest_path, bin) + source = os.path.join(activity_dir, filename) + setup_activity(source, dest_path, bin) if __name__=='__main__': - install_activities(sys.argv[1], sys.argv[2], sys.argv[3]) + setup_activities(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/tools/Makefile.am b/tools/Makefile.am new file mode 100644 index 00000000..c4cd3bbd --- /dev/null +++ b/tools/Makefile.am @@ -0,0 +1 @@ +bin_SCRIPTS = sugar-setup-activity diff --git a/tools/sugar-setup-activity.in b/tools/sugar-setup-activity.in new file mode 100644 index 00000000..6a3263e3 --- /dev/null +++ b/tools/sugar-setup-activity.in @@ -0,0 +1,10 @@ +#!/usr/bin/python +import sys + +from sugar import setup + +setup.setup_activity(sys.argv[1], + '@prefix@/share/sugar/activities', + '@prefix@/bin/sugar-activity-factory') + +print '%s installed.' % sys.argv[1]