func run() error {
	log.Println("Extract CLDR data")

	coreFile, err := os.Open("/tmp/core.zip")
	if err != nil {
		return errors.Trace(err)
	}

	decoder := cldr.Decoder{}
	decoder.SetDirFilter("main")
	decoder.SetSectionFilter("dates")
	data, err := decoder.DecodeZip(coreFile)
	if err != nil {
		return errors.Trace(err)
	}

	for _, locale := range strings.Split(*locales, ",") {
		log.Println("Extract locale", locale)

		ldml, err := data.LDML(locale)
		if err != nil {
			return errors.Trace(err)
		}

		if err := extractLDML(locale, ldml); err != nil {
			return errors.Trace(err)
		}
	}

	log.Println("Generator done")

	return nil
}