package main

import (
	"encoding/json"
	"log"
	"os"
	"path"

	"github.com/ethereum-optimism/optimism/op-node/rollup"
	"github.com/ethereum-optimism/superchain-registry/superchain"
)

func main() {
	rev := os.Args[1]

	for chainID, chain := range superchain.OPChains {
		config, err := rollup.LoadOPStackRollupConfig(chainID)
		if err != nil {
			panic(err)
		}
		j, err := json.MarshalIndent(config, "", "  ")
		if err != nil {
			panic(err)
		}

		dirPath := "./generate-rollup-config/output-" + rev

		// Create the directory if it doesn't exist
		if _, err := os.Stat(dirPath); os.IsNotExist(err) {
			err := os.MkdirAll(dirPath, 0o755)
			if err != nil {
				log.Fatalf("Error creating directory: %v", err)
			}
		}

		err = os.WriteFile(path.Join(dirPath, chain.Chain+"-"+chain.Superchain+".json"), j, os.FileMode(0o644))
		if err != nil {
			panic(err)
		}
	}
}