@@ -17,12 +17,12 @@ import yaml
1717
1818
1919def parse_args ():
20- if len (sys .argv ) < 2 :
21- print ('Usage: {} [user] [repo]' .format (sys .argv [0 ]))
20+ if len (sys .argv ) < 3 :
21+ print ('Usage: {} [user] [repo] [branch] ' .format (sys .argv [0 ]))
2222 sys .exit (1 )
23- user , repo = sys .argv [1 ], sys .argv [2 ]
23+ user , repo , branch = sys .argv [1 ], sys .argv [2 ], sys . argv [ 3 ]
2424 app = repo .split ('.' )[0 ]
25- return user , repo , app
25+ return user , repo , branch , app
2626
2727
2828DOCKERFILE_SHIM = """FROM deis/slugrunner
@@ -33,7 +33,7 @@ ENTRYPOINT ["/runner/init"]
3333
3434
3535if __name__ == '__main__' :
36- user , repo , app = parse_args ()
36+ user , repo , branch , app = parse_args ()
3737 # define image names
3838 _id = uuid .uuid4 ().hex [:8 ]
3939 tmp_image = "{app}:temp_{_id}" .format (** locals ())
@@ -48,9 +48,9 @@ if __name__ == '__main__':
4848 try :
4949 # create temporary directory
5050 temp_dir = tempfile .mkdtemp (dir = build_dir )
51- # extract git master
51+ # extract git branch
5252 p = subprocess .Popen (
53- 'git archive master | tar -x -C {temp_dir}' .format (** locals ()),
53+ 'git archive {branch} | tar -x -C {temp_dir}' .format (** locals ()),
5454 shell = True , cwd = repo_dir )
5555 rc = p .wait ()
5656 if rc != 0 :
@@ -73,7 +73,7 @@ if __name__ == '__main__':
7373 else :
7474 build_cmd = "docker run -i -a stdin {config_env} -v {cache_dir}:/tmp/cache:rw deis/slugbuilder" .format (** locals ())
7575 # run slugbuilder in the background
76- p = subprocess .Popen ("git archive master | " + build_cmd , shell = True , cwd = repo_dir , stdout = subprocess .PIPE )
76+ p = subprocess .Popen ("git archive {branch} | " . format ( ** locals ()) + build_cmd , shell = True , cwd = repo_dir , stdout = subprocess .PIPE )
7777 container = p .stdout .read ().strip ('\n ' )
7878 # attach to slugbuilder output
7979 p = subprocess .Popen ('docker attach {container}' .format (** locals ()), shell = True , cwd = temp_dir )
@@ -114,8 +114,8 @@ if __name__ == '__main__':
114114 body ['receive_user' ] = user
115115 body ['receive_repo' ] = app
116116 body ['image' ] = target_image
117- # use sha of master
118- with open (os .path .join (repo_dir , 'refs/heads/master' )) as f :
117+ # use sha of branch
118+ with open (os .path .join (repo_dir , branch )) as f :
119119 body ['sha' ] = f .read ().strip ('\n ' )
120120 # extract the user-defined Procfile and any default_process_types
121121 procfile_dict = {}
0 commit comments