@@ -405,6 +405,12 @@ func writeToEncoder(cfg DeclarativeConfig, enc encoder) error {
405405 pkgNames .Insert (pkgName )
406406 packagesByName [pkgName ] = append (packagesByName [pkgName ], p )
407407 }
408+ iconsByPackage := map [string ][]Icon {}
409+ for _ , i := range cfg .Icons {
410+ pkgName := i .Package
411+ pkgNames .Insert (pkgName )
412+ iconsByPackage [pkgName ] = append (iconsByPackage [pkgName ], i )
413+ }
408414 channelsByPackage := map [string ][]Channel {}
409415 for _ , c := range cfg .Channels {
410416 pkgName := c .Package
@@ -441,6 +447,13 @@ func writeToEncoder(cfg DeclarativeConfig, enc encoder) error {
441447 }
442448 }
443449
450+ icons := iconsByPackage [pName ]
451+ for _ , i := range icons {
452+ if err := enc .Encode (i ); err != nil {
453+ return err
454+ }
455+ }
456+
444457 channels := channelsByPackage [pName ]
445458 sort .Slice (channels , func (i , j int ) bool {
446459 return channels [i ].Name < channels [j ].Name
@@ -501,6 +514,10 @@ func writeToEncoder(cfg DeclarativeConfig, enc encoder) error {
501514type WriteFunc func (config DeclarativeConfig , w io.Writer ) error
502515
503516func WriteFS (cfg DeclarativeConfig , rootDir string , writeFunc WriteFunc , fileExt string ) error {
517+ iconsByPackage := map [string ][]Icon {}
518+ for _ , i := range cfg .Icons {
519+ iconsByPackage [i .Package ] = append (iconsByPackage [i .Package ], i )
520+ }
504521 channelsByPackage := map [string ][]Channel {}
505522 for _ , c := range cfg .Channels {
506523 channelsByPackage [c .Package ] = append (channelsByPackage [c .Package ], c )
@@ -509,16 +526,27 @@ func WriteFS(cfg DeclarativeConfig, rootDir string, writeFunc WriteFunc, fileExt
509526 for _ , b := range cfg .Bundles {
510527 bundlesByPackage [b .Package ] = append (bundlesByPackage [b .Package ], b )
511528 }
529+ deprecationsByPackage := map [string ][]Deprecation {}
530+ for _ , d := range cfg .Deprecations {
531+ deprecationsByPackage [d .Package ] = append (deprecationsByPackage [d .Package ], d )
532+ }
533+ othersByPackage := map [string ][]Meta {}
534+ for _ , o := range cfg .Others {
535+ othersByPackage [o .Package ] = append (othersByPackage [o .Package ], o )
536+ }
512537
513538 if err := os .MkdirAll (rootDir , 0777 ); err != nil {
514539 return err
515540 }
516541
517542 for _ , p := range cfg .Packages {
518543 fcfg := DeclarativeConfig {
519- Packages : []Package {p },
520- Channels : channelsByPackage [p .Name ],
521- Bundles : bundlesByPackage [p .Name ],
544+ Packages : []Package {p },
545+ Icons : iconsByPackage [p .Name ],
546+ Channels : channelsByPackage [p .Name ],
547+ Bundles : bundlesByPackage [p .Name ],
548+ Deprecations : deprecationsByPackage [p .Name ],
549+ Others : othersByPackage [p .Name ],
522550 }
523551 pkgDir := filepath .Join (rootDir , p .Name )
524552 if err := os .MkdirAll (pkgDir , 0777 ); err != nil {
0 commit comments