in create_titleid/main.go [14:72]
func main() {
filebase := flag.String("filebase", "", "filebase for the title")
octid := flag.Int64("octid", 0, "'octopus' (title) id (optional)")
project := flag.String("project", "", "optional project ID")
tableName := flag.String("table", "", "table name to put to")
flag.Parse()
if *filebase == "" {
log.Fatal("You must specify a filebase to create a new title")
}
var maybeProject *string
if *project != "" {
maybeProject = project
}
var maybeOctId *int64
if *octid != 0 {
maybeOctId = octid
}
awsConfig, err := config.LoadDefaultConfig(context.Background())
if err != nil {
log.Fatal("Could not connect to AWS: ", err)
}
ddbClient := dynamodb.NewFromConfig(awsConfig)
var contentId int32
contentId = common.GenerateNumericId()
existingRecordsCount, knownIdList, err := CheckForExistingName(ddbClient, tableName, filebase)
existingRecordsCountId, knownIdListId, errId := CheckForExistingContentId(ddbClient, tableName, contentId)
log.Printf("DEBUG: Existing id: %s Error: %s", knownIdListId, errId)
if existingRecordsCount > 1 {
log.Printf("WARNING: There are %d content IDs for the name '%s'. This will lead to problems and should be fixed.", existingRecordsCount, *filebase)
for i, id := range knownIdList {
log.Printf("ContentID %d: %s", i+1, id)
}
os.Exit(1)
} else if existingRecordsCount > 0 {
log.Printf("There is already a title for '%s' with this content ID: %s", *filebase, knownIdList[0])
os.Exit(0)
} else if existingRecordsCountId > 0 {
log.Printf("There is already a record using content id.: %d", contentId)
os.Exit(0)
} else {
newRecord, err := GenerateNewRecord(ddbClient, tableName, filebase, maybeProject, maybeOctId, 0, contentId)
if newRecord != nil {
log.Print("Created new title record: ")
spew.Dump(*newRecord)
}
if err == nil {
log.Print("Title created")
} else {
log.Fatal("Could not create title: ", err)
}
}
}