diff --git a/code/client/munkiimport b/code/client/munkiimport index 9d5391ea..07f164ff 100755 --- a/code/client/munkiimport +++ b/code/client/munkiimport @@ -31,6 +31,7 @@ import subprocess import sys import time import thread +import re from ctypes.util import find_library from optparse import OptionParser, BadOptionError, AmbiguousOptionError @@ -810,13 +811,20 @@ def configure(): if key == 'plugin': # first look for a plugins folder in the same dir as us plugin_path = os.path.dirname(os.path.abspath(__file__)) - plugin_path = os.path.join(plugin_path, 'munkilib') + plugin_path = os.path.join(plugin_path, 'munkilib/plugins') if not os.path.exists(plugin_path): # didn't find it; assume the default install path - plugin_path = '/usr/local/munki/munkilib' - if not os.path.isdir(plugin_path + '/plugins'): + plugin_path = '/usr/local/munki/munkilib/plugins' + hasPlugin = False + included_extensions = ['py'] + plugins = [fn for fn in os.listdir(plugin_path) + if any(fn.endswith(ext) for ext in included_extensions)] + for plugin in plugins: + if 'FileRepo' not in plugin: + hasPlugin = True + if not os.path.isdir(plugin_path): continue - if not os.listdir(plugin_path + '/plugins'): + if not hasPlugin: continue _prefs[key] = raw_input_with_default('%15s: ' % prompt, pref(key)) diff --git a/code/client/munkilib/Repo.py b/code/client/munkilib/Repo.py index 43e9b941..91230fdd 100644 --- a/code/client/munkilib/Repo.py +++ b/code/client/munkilib/Repo.py @@ -30,6 +30,7 @@ def Open(path, url, plugin): #looks for installtion path for munki # first look for a plugin in the same dir as us in munkilib/plugins munkilib_path = os.path.dirname(os.path.abspath(__file__)) + munkilib_path = os.path.join(munkilib_path, 'plugins') if not os.path.exists(munkilib_path): # didn't find it; assume the default install path command = "munkiimport" @@ -38,9 +39,9 @@ def Open(path, url, plugin): munkilib_path = commandPath[0] #use default munki location if munki installation path is not found if munkilib_path == None or munkilib_path == "": - munkilib_path = '/usr/local/munki/munkilib' + munkilib_path = '/usr/local/munki/munkilib/plugins' else: - munkilib_path = munkilib_path + '/munkilib' + munkilib_path = munkilib_path + '/munkilib/plugins' #looks for plugin in /usr/local/munki/munkilib/plugins (installation of munki) if plugin == None or plugin == "": #default is FileRepo if no plugin is specified in configuration or options. diff --git a/code/client/munkilib/FileRepo.py b/code/client/munkilib/plugins/FileRepo.py similarity index 100% rename from code/client/munkilib/FileRepo.py rename to code/client/munkilib/plugins/FileRepo.py