|
|
|
|
@ -26,25 +26,7 @@ type Config struct {
|
|
|
|
|
|
|
|
|
|
var statuses = []string{"JD", "LLM", "MCL", "PHD", "SJD", "MLS", "SPEC", "MNR", "CERT"}
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
data, err := os.ReadFile("config.json")
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("failed to read config.json: %v", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var config Config
|
|
|
|
|
if err := json.Unmarshal(data, &config); err != nil {
|
|
|
|
|
log.Fatalf("failed to parse config.json: %v", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
total := 0
|
|
|
|
|
for _, v := range config.PercentStatus {
|
|
|
|
|
total += v
|
|
|
|
|
}
|
|
|
|
|
if total != 100 {
|
|
|
|
|
log.Fatalf("percent_status values must total 100, got %d", total)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func GenerateUserData (config Config) {
|
|
|
|
|
// Build a weighted list of statuses
|
|
|
|
|
weightedStatuses := make([]string, 0, 100)
|
|
|
|
|
for status, pct := range config.PercentStatus {
|
|
|
|
|
@ -91,6 +73,29 @@ func main() {
|
|
|
|
|
fmt.Printf("Generated %d users to users.csv\n", config.NumberOfUsers)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
data, err := os.ReadFile("config.json")
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("failed to read config.json: %v", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var config Config
|
|
|
|
|
if err := json.Unmarshal(data, &config); err != nil {
|
|
|
|
|
log.Fatalf("failed to parse config.json: %v", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
total := 0
|
|
|
|
|
for _, v := range config.PercentStatus {
|
|
|
|
|
total += v
|
|
|
|
|
}
|
|
|
|
|
if total != 100 {
|
|
|
|
|
log.Fatalf("percent_status values must total 100, got %d", total)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GenerateUserData(config)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// uniqueNumericStrings generates n unique zero-padded numeric strings of the given digit length.
|
|
|
|
|
func uniqueNumericStrings(digits, n int) []string {
|
|
|
|
|
max := 1
|
|
|
|
|
|