@@ -2,32 +2,40 @@ var detect = require('strider-detection-rules')
2
2
var fs = require ( 'fs' )
3
3
var path = require ( 'path' )
4
4
5
+ function shellCommand ( command ) {
6
+ if ( ! command . replace ( / # [ ^ \n ] * / g, '' ) . trim ( ) . length ) return
7
+ return {
8
+ command : 'sh' ,
9
+ args : [ '-x' , '-c' , command ]
10
+ }
11
+ }
12
+
5
13
module . exports = {
6
14
init : function ( config , job , context , done ) {
7
15
var venvDir = path . join ( context . baseDir , '.venv' )
8
16
var test = undefined
9
17
if ( config && config . test !== 'none' ) {
10
18
test = config . test
11
19
}
12
- var defaultPrepare = "pip install -r requirements.txt"
20
+ var defaultPrepare = function ( context , done ) {
21
+ if ( ! fs . existsSync ( path . join ( context . dataDir , 'requirements.txt' ) ) ) {
22
+ // skip if default and no requirements.txt exists
23
+ // we assume that if you're configuring your own, you'll ensure the file exists
24
+ return done ( null , true )
25
+ }
26
+ context . cmd ( "pip install -r requirements.txt" , function ( err ) {
27
+ done ( err , true )
28
+ } )
29
+ }
13
30
var prepare = defaultPrepare
14
31
if ( config && config . prepare ) {
15
- prepare = config . prepare
32
+ prepare = shellCommand ( config . prepare )
16
33
}
17
34
done ( null , {
18
35
path : [ path . join ( __dirname , 'thirdparty' ) ,
19
36
path . join ( venvDir , 'bin' ) ] ,
20
37
environment : 'virtualenv.py ' + venvDir ,
21
- prepare : function ( context , done ) {
22
- if ( prepare === defaultPrepare && ! fs . existsSync ( path . join ( context . dataDir , 'requirements.txt' ) ) ) {
23
- // skip if default and no requirements.txt exists
24
- // we assume that if you're configuring your own, you'll ensure the file exists
25
- return done ( null , true )
26
- }
27
- context . cmd ( prepare , function ( err ) {
28
- done ( err , true )
29
- } )
30
- } ,
38
+ prepare : prepare ,
31
39
test : test
32
40
} )
33
41
} ,
0 commit comments