2222import splunklib
2323import tarfile
2424
25+
2526def run_test_suite ():
2627 try :
2728 import unittest2 as unittest
@@ -72,6 +73,7 @@ def finalize_options(self):
7273 def run (self ):
7374 run_test_suite ()
7475
76+
7577class DistCommand (Command ):
7678 """setup.py command to create .spl files for modular input and search
7779 command examples"""
@@ -98,8 +100,8 @@ def run(self):
98100 # Create random_numbers.spl and github_forks.spl
99101
100102 app_names = ['random_numbers' , 'github_forks' ]
101- splunklib_dir = "splunklib"
102- modinput_dir = os .path .join (splunklib_dir , "modularinput" )
103+ splunklib_arcname = "splunklib"
104+ modinput_dir = os .path .join (splunklib_arcname , "modularinput" )
103105
104106 for app in app_names :
105107 with closing (tarfile .open (os .path .join ("build" , app + ".spl" ), "w" )) as spl :
@@ -117,11 +119,11 @@ def run(self):
117119 arcname = os .path .join (app , "README" , "inputs.conf.spec" )
118120 )
119121
120- splunklib_files = self .get_python_files (os .listdir (splunklib_dir ))
122+ splunklib_files = self .get_python_files (os .listdir (splunklib_arcname ))
121123 for file_name in splunklib_files :
122124 spl .add (
123- os .path .join (splunklib_dir , file_name ),
124- arcname = os .path .join (app , "bin" , splunklib_dir , file_name )
125+ os .path .join (splunklib_arcname , file_name ),
126+ arcname = os .path .join (app , "bin" , splunklib_arcname , file_name )
125127 )
126128
127129 modinput_files = self .get_python_files (os .listdir (modinput_dir ))
@@ -137,14 +139,6 @@ def run(self):
137139
138140 sdk_dir = os .path .abspath ('.' )
139141
140- tarball = os .path .join (sdk_dir , 'build' , 'searchcommands_app.spl' )
141-
142- app_dir = os .path .join (sdk_dir , 'examples' , 'searchcommands_app' )
143- arc_app_dir = 'searchcommands_app'
144-
145- lib_dir = os .path .join (sdk_dir , 'splunklib' , 'searchcommands' )
146- arc_app_lib_dir = os .path .join (arc_app_dir , 'bin' , 'splunklib' , 'searchcommands' )
147-
148142 def exclude (path ):
149143 # TODO: Replace with filter function because exclude is deprecated
150144 basename = os .path .basename (path )
@@ -153,10 +147,25 @@ def exclude(path):
153147 return True
154148 return False
155149
156- with closing (tarfile .open (tarball , "w" )) as spl :
157- spl .add (app_dir , arcname = arc_app_dir , exclude = exclude )
158- spl .add (lib_dir , arcname = arc_app_lib_dir , exclude = exclude )
150+ tarball = os .path .join (sdk_dir , 'build' , 'searchcommands_app.spl' )
151+
152+ splunklib_arcname = os .path .join (
153+ 'searchcommands_app' , 'bin' , 'splunklib' )
154+
155+ manifest = [
156+ (os .path .join (sdk_dir , 'examples' , 'searchcommands_app' ),
157+ 'searchcommands_app' ),
158+ (os .path .join (sdk_dir , 'splunklib' , '__init__.py' ),
159+ os .path .join (splunklib_arcname , '__init__.py' )),
160+ (os .path .join (sdk_dir , 'splunklib' , 'searchcommands' ),
161+ os .path .join (splunklib_arcname , 'searchcommands' ))
162+ ]
163+
164+ with closing (tarfile .open (tarball , 'w' )) as spl :
165+ for source , target in manifest :
166+ spl .add (source , arcname = target , exclude = exclude )
159167
168+ return
160169
161170setup (
162171 author = "Splunk, Inc." ,
0 commit comments