@@ -66,21 +66,39 @@ private static function resolve(string $version= null): string {
6666 }
6767
6868 /** Returns the command instance for the given name and arguments */
69- private static function command (string $ name , array $ args ): object {
69+ private static function command (string $ name , array $ args ) {
7070 sscanf ($ name , "%[^:]:%[^ \r] " , $ command , $ version );
7171 switch ($ command ) {
72- case 'package ' : return new PackageLambda (new Path ('function.zip ' ), new Sources (new Path ('. ' ), [...$ args , 'vendor ' ]));
73- case 'run ' : return new RunLambda (...$ args );
74- case 'runtime ' : return new CreateRuntime (self ::resolve ($ version ), new Path ('runtime-%s.zip ' ), in_array ('-b ' , $ args ));
75- case 'test ' : return new TestLambda (self ::resolve ($ version ), new Path ('. ' ), $ args );
76- default : return new DisplayError ('Unknown command " ' .$ args [0 ].'" ' );
72+ case 'package ' : $ args []= 'vendor ' ; return new PackageLambda (
73+ new Path ('function.zip ' ),
74+ new Sources (new Path ('. ' ), $ args )
75+ );
76+
77+ case 'run ' : $ handler = array_shift ($ args ); return new RunLambda (
78+ $ handler ,
79+ $ args
80+ );
81+
82+ case 'runtime ' : return new CreateRuntime (
83+ self ::resolve ($ version ),
84+ new Path ('runtime-%s.zip ' ),
85+ in_array ('-b ' , $ args )
86+ );
87+
88+ case 'test ' : return new TestLambda (
89+ self ::resolve ($ version ),
90+ new Path ('. ' ),
91+ $ args
92+ );
93+
94+ default : return new DisplayError ('Unknown lambda command " ' .$ name .'" ' );
7795 }
7896 }
7997
8098 /** Entry point */
8199 public static function main (array $ args ): int {
82100 if (empty ($ args )) {
83- $ c = new DisplayError ('Missing command, expecting `xp lambda runtime`, `xp lambda test` or `xp lambda package ` ' );
101+ $ c = new DisplayError ('Missing command, expecting `xp lambda [run|package| runtime| test] ` ' );
84102 } else {
85103 $ c = self ::command ($ args [0 ], array_slice ($ args , 1 ));
86104 }
0 commit comments