@@ -89,8 +89,9 @@ type DeployOptions struct {
89
89
90
90
Observer DeployObserver
91
91
92
- files * deployFiles
93
- functions * deployFiles
92
+ files * deployFiles
93
+ functions * deployFiles
94
+ functionSchedules []models.FunctionSchedule
94
95
}
95
96
96
97
type uploadError struct {
@@ -211,14 +212,15 @@ func (n *Netlify) DoDeploy(ctx context.Context, options *DeployOptions, deploy *
211
212
212
213
options .files = files
213
214
214
- functions , err := bundle (options .FunctionsDir , options .Observer )
215
+ functions , schedules , err := bundle (options .FunctionsDir , options .Observer )
215
216
if err != nil {
216
217
if options .Observer != nil {
217
218
options .Observer .OnFailedWalk ()
218
219
}
219
220
return nil , err
220
221
}
221
222
options .functions = functions
223
+ options .functionSchedules = schedules
222
224
223
225
deployFiles := & models.DeployFiles {
224
226
Files : options .files .Sums ,
@@ -578,9 +580,9 @@ func walk(dir string, observer DeployObserver, useLargeMedia, ignoreInstallDirs
578
580
return files , err
579
581
}
580
582
581
- func bundle (functionDir string , observer DeployObserver ) (* deployFiles , error ) {
583
+ func bundle (functionDir string , observer DeployObserver ) (* deployFiles , []models. FunctionSchedule , error ) {
582
584
if functionDir == "" {
583
- return nil , nil
585
+ return nil , nil , nil
584
586
}
585
587
586
588
manifestFile , err := os .Open (filepath .Join (functionDir , "manifest.json" ))
@@ -597,7 +599,7 @@ func bundle(functionDir string, observer DeployObserver) (*deployFiles, error) {
597
599
598
600
info , err := ioutil .ReadDir (functionDir )
599
601
if err != nil {
600
- return nil , err
602
+ return nil , nil , err
601
603
}
602
604
603
605
for _ , i := range info {
@@ -607,23 +609,23 @@ func bundle(functionDir string, observer DeployObserver) (*deployFiles, error) {
607
609
case zipFile (i ):
608
610
runtime , err := readZipRuntime (filePath )
609
611
if err != nil {
610
- return nil , err
612
+ return nil , nil , err
611
613
}
612
614
file , err := newFunctionFile (filePath , i , runtime , observer )
613
615
if err != nil {
614
- return nil , err
616
+ return nil , nil , err
615
617
}
616
618
functions .Add (file .Name , file )
617
619
case jsFile (i ):
618
620
file , err := newFunctionFile (filePath , i , jsRuntime , observer )
619
621
if err != nil {
620
- return nil , err
622
+ return nil , nil , err
621
623
}
622
624
functions .Add (file .Name , file )
623
625
case goFile (filePath , i , observer ):
624
626
file , err := newFunctionFile (filePath , i , goRuntime , observer )
625
627
if err != nil {
626
- return nil , err
628
+ return nil , nil , err
627
629
}
628
630
functions .Add (file .Name , file )
629
631
default :
@@ -633,43 +635,51 @@ func bundle(functionDir string, observer DeployObserver) (*deployFiles, error) {
633
635
}
634
636
}
635
637
636
- return functions , nil
638
+ return functions , nil , nil
637
639
}
638
640
639
- func bundleFromManifest (manifestFile * os.File , observer DeployObserver ) (* deployFiles , error ) {
641
+ func bundleFromManifest (manifestFile * os.File , observer DeployObserver ) (* deployFiles , []models. FunctionSchedule , error ) {
640
642
manifestBytes , err := ioutil .ReadAll (manifestFile )
641
643
642
644
if err != nil {
643
- return nil , err
645
+ return nil , nil , err
644
646
}
645
647
646
648
var manifest functionsManifest
647
649
648
650
err = json .Unmarshal (manifestBytes , & manifest )
649
651
650
652
if err != nil {
651
- return nil , fmt .Errorf ("malformed functions manifest file: %w" , err )
653
+ return nil , nil , fmt .Errorf ("malformed functions manifest file: %w" , err )
652
654
}
653
655
656
+ schedules := make ([]models.FunctionSchedule , 0 , len (manifest .Functions ))
654
657
functions := newDeployFiles ()
655
658
656
659
for _ , function := range manifest .Functions {
657
660
fileInfo , err := os .Stat (function .Path )
658
661
659
662
if err != nil {
660
- return nil , fmt .Errorf ("manifest file specifies a function path that cannot be found: %s" , function .Path )
663
+ return nil , nil , fmt .Errorf ("manifest file specifies a function path that cannot be found: %s" , function .Path )
661
664
}
662
665
663
666
file , err := newFunctionFile (function .Path , fileInfo , function .Runtime , observer )
664
667
665
668
if err != nil {
666
- return nil , err
669
+ return nil , nil , err
670
+ }
671
+
672
+ if function .Schedule != "" {
673
+ schedules = append (schedules , models.FunctionSchedule {
674
+ Cron : function .Schedule ,
675
+ Name : function .Name ,
676
+ })
667
677
}
668
678
669
679
functions .Add (file .Name , file )
670
680
}
671
681
672
- return functions , nil
682
+ return functions , schedules , nil
673
683
}
674
684
675
685
func readZipRuntime (filePath string ) (string , error ) {
0 commit comments