diff --git a/ent/dbpackage.go b/ent/dbpackage.go index c863ae5..c17d88c 100644 --- a/ent/dbpackage.go +++ b/ent/dbpackage.go @@ -22,21 +22,21 @@ type DbPackage struct { // Packages holds the value of the "packages" field. Packages []string `json:"packages,omitempty"` // Status holds the value of the "status" field. - Status int `json:"status,omitempty"` + Status dbpackage.Status `json:"status,omitempty"` // SkipReason holds the value of the "skip_reason" field. SkipReason string `json:"skip_reason,omitempty"` // Repository holds the value of the "repository" field. - Repository string `json:"repository,omitempty"` + Repository dbpackage.Repository `json:"repository,omitempty"` // March holds the value of the "march" field. March string `json:"march,omitempty"` // Version holds the value of the "version" field. Version string `json:"version,omitempty"` // RepoVersion holds the value of the "repo_version" field. RepoVersion string `json:"repo_version,omitempty"` - // BuildTime holds the value of the "build_time" field. - BuildTime time.Time `json:"build_time,omitempty"` - // BuildDuration holds the value of the "build_duration" field. - BuildDuration uint64 `json:"build_duration,omitempty"` + // BuildTimeStart holds the value of the "build_time_start" field. + BuildTimeStart time.Time `json:"build_time_start,omitempty"` + // BuildTimeEnd holds the value of the "build_time_end" field. + BuildTimeEnd time.Time `json:"build_time_end,omitempty"` // Updated holds the value of the "updated" field. Updated time.Time `json:"updated,omitempty"` // Hash holds the value of the "hash" field. @@ -50,11 +50,11 @@ func (*DbPackage) scanValues(columns []string) ([]interface{}, error) { switch columns[i] { case dbpackage.FieldPackages: values[i] = new([]byte) - case dbpackage.FieldID, dbpackage.FieldStatus, dbpackage.FieldBuildDuration: + case dbpackage.FieldID: values[i] = new(sql.NullInt64) - case dbpackage.FieldPkgbase, dbpackage.FieldSkipReason, dbpackage.FieldRepository, dbpackage.FieldMarch, dbpackage.FieldVersion, dbpackage.FieldRepoVersion, dbpackage.FieldHash: + case dbpackage.FieldPkgbase, dbpackage.FieldStatus, dbpackage.FieldSkipReason, dbpackage.FieldRepository, dbpackage.FieldMarch, dbpackage.FieldVersion, dbpackage.FieldRepoVersion, dbpackage.FieldHash: values[i] = new(sql.NullString) - case dbpackage.FieldBuildTime, dbpackage.FieldUpdated: + case dbpackage.FieldBuildTimeStart, dbpackage.FieldBuildTimeEnd, dbpackage.FieldUpdated: values[i] = new(sql.NullTime) default: return nil, fmt.Errorf("unexpected column %q for type DbPackage", columns[i]) @@ -92,10 +92,10 @@ func (dp *DbPackage) assignValues(columns []string, values []interface{}) error } } case dbpackage.FieldStatus: - if value, ok := values[i].(*sql.NullInt64); !ok { + if value, ok := values[i].(*sql.NullString); !ok { return fmt.Errorf("unexpected type %T for field status", values[i]) } else if value.Valid { - dp.Status = int(value.Int64) + dp.Status = dbpackage.Status(value.String) } case dbpackage.FieldSkipReason: if value, ok := values[i].(*sql.NullString); !ok { @@ -107,7 +107,7 @@ func (dp *DbPackage) assignValues(columns []string, values []interface{}) error if value, ok := values[i].(*sql.NullString); !ok { return fmt.Errorf("unexpected type %T for field repository", values[i]) } else if value.Valid { - dp.Repository = value.String + dp.Repository = dbpackage.Repository(value.String) } case dbpackage.FieldMarch: if value, ok := values[i].(*sql.NullString); !ok { @@ -127,17 +127,17 @@ func (dp *DbPackage) assignValues(columns []string, values []interface{}) error } else if value.Valid { dp.RepoVersion = value.String } - case dbpackage.FieldBuildTime: + case dbpackage.FieldBuildTimeStart: if value, ok := values[i].(*sql.NullTime); !ok { - return fmt.Errorf("unexpected type %T for field build_time", values[i]) + return fmt.Errorf("unexpected type %T for field build_time_start", values[i]) } else if value.Valid { - dp.BuildTime = value.Time + dp.BuildTimeStart = value.Time } - case dbpackage.FieldBuildDuration: - if value, ok := values[i].(*sql.NullInt64); !ok { - return fmt.Errorf("unexpected type %T for field build_duration", values[i]) + case dbpackage.FieldBuildTimeEnd: + if value, ok := values[i].(*sql.NullTime); !ok { + return fmt.Errorf("unexpected type %T for field build_time_end", values[i]) } else if value.Valid { - dp.BuildDuration = uint64(value.Int64) + dp.BuildTimeEnd = value.Time } case dbpackage.FieldUpdated: if value, ok := values[i].(*sql.NullTime); !ok { @@ -188,17 +188,17 @@ func (dp *DbPackage) String() string { builder.WriteString(", skip_reason=") builder.WriteString(dp.SkipReason) builder.WriteString(", repository=") - builder.WriteString(dp.Repository) + builder.WriteString(fmt.Sprintf("%v", dp.Repository)) builder.WriteString(", march=") builder.WriteString(dp.March) builder.WriteString(", version=") builder.WriteString(dp.Version) builder.WriteString(", repo_version=") builder.WriteString(dp.RepoVersion) - builder.WriteString(", build_time=") - builder.WriteString(dp.BuildTime.Format(time.ANSIC)) - builder.WriteString(", build_duration=") - builder.WriteString(fmt.Sprintf("%v", dp.BuildDuration)) + builder.WriteString(", build_time_start=") + builder.WriteString(dp.BuildTimeStart.Format(time.ANSIC)) + builder.WriteString(", build_time_end=") + builder.WriteString(dp.BuildTimeEnd.Format(time.ANSIC)) builder.WriteString(", updated=") builder.WriteString(dp.Updated.Format(time.ANSIC)) builder.WriteString(", hash=") diff --git a/ent/dbpackage/dbpackage.go b/ent/dbpackage/dbpackage.go index 478f5a5..3317bb0 100644 --- a/ent/dbpackage/dbpackage.go +++ b/ent/dbpackage/dbpackage.go @@ -2,6 +2,10 @@ package dbpackage +import ( + "fmt" +) + const ( // Label holds the string label denoting the dbpackage type in the database. Label = "db_package" @@ -23,10 +27,10 @@ const ( FieldVersion = "version" // FieldRepoVersion holds the string denoting the repo_version field in the database. FieldRepoVersion = "repo_version" - // FieldBuildTime holds the string denoting the build_time field in the database. - FieldBuildTime = "build_time" - // FieldBuildDuration holds the string denoting the build_duration field in the database. - FieldBuildDuration = "build_duration" + // FieldBuildTimeStart holds the string denoting the build_time_start field in the database. + FieldBuildTimeStart = "build_time_start" + // FieldBuildTimeEnd holds the string denoting the build_time_end field in the database. + FieldBuildTimeEnd = "build_time_end" // FieldUpdated holds the string denoting the updated field in the database. FieldUpdated = "updated" // FieldHash holds the string denoting the hash field in the database. @@ -46,8 +50,8 @@ var Columns = []string{ FieldMarch, FieldVersion, FieldRepoVersion, - FieldBuildTime, - FieldBuildDuration, + FieldBuildTimeStart, + FieldBuildTimeEnd, FieldUpdated, FieldHash, } @@ -65,14 +69,62 @@ func ValidColumn(column string) bool { var ( // PkgbaseValidator is a validator for the "pkgbase" field. It is called by the builders before save. PkgbaseValidator func(string) error - // DefaultStatus holds the default value on creation for the "status" field. - DefaultStatus int - // StatusValidator is a validator for the "status" field. It is called by the builders before save. - StatusValidator func(int) error - // RepositoryValidator is a validator for the "repository" field. It is called by the builders before save. - RepositoryValidator func(string) error // MarchValidator is a validator for the "march" field. It is called by the builders before save. MarchValidator func(string) error - // BuildDurationValidator is a validator for the "build_duration" field. It is called by the builders before save. - BuildDurationValidator func(uint64) error ) + +// Status defines the type for the "status" enum field. +type Status string + +// StatusUnknown is the default value of the Status enum. +const DefaultStatus = StatusUnknown + +// Status values. +const ( + StatusSkipped Status = "skipped" + StatusFailed Status = "failed" + StatusBuild Status = "build" + StatusQueued Status = "queued" + StatusBuilding Status = "building" + StatusLatest Status = "latest" + StatusSigning Status = "signing" + StatusUnknown Status = "unknown" +) + +func (s Status) String() string { + return string(s) +} + +// StatusValidator is a validator for the "status" field enum values. It is called by the builders before save. +func StatusValidator(s Status) error { + switch s { + case StatusSkipped, StatusFailed, StatusBuild, StatusQueued, StatusBuilding, StatusLatest, StatusSigning, StatusUnknown: + return nil + default: + return fmt.Errorf("dbpackage: invalid enum value for status field: %q", s) + } +} + +// Repository defines the type for the "repository" enum field. +type Repository string + +// Repository values. +const ( + RepositoryExtra Repository = "extra" + RepositoryCore Repository = "core" + RepositoryCommunity Repository = "community" +) + +func (r Repository) String() string { + return string(r) +} + +// RepositoryValidator is a validator for the "repository" field enum values. It is called by the builders before save. +func RepositoryValidator(r Repository) error { + switch r { + case RepositoryExtra, RepositoryCore, RepositoryCommunity: + return nil + default: + return fmt.Errorf("dbpackage: invalid enum value for repository field: %q", r) + } +} diff --git a/ent/dbpackage/where.go b/ent/dbpackage/where.go index 1682b90..ea97db1 100644 --- a/ent/dbpackage/where.go +++ b/ent/dbpackage/where.go @@ -99,13 +99,6 @@ func Pkgbase(v string) predicate.DbPackage { }) } -// Status applies equality check predicate on the "status" field. It's identical to StatusEQ. -func Status(v int) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.EQ(s.C(FieldStatus), v)) - }) -} - // SkipReason applies equality check predicate on the "skip_reason" field. It's identical to SkipReasonEQ. func SkipReason(v string) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { @@ -113,13 +106,6 @@ func SkipReason(v string) predicate.DbPackage { }) } -// Repository applies equality check predicate on the "repository" field. It's identical to RepositoryEQ. -func Repository(v string) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.EQ(s.C(FieldRepository), v)) - }) -} - // March applies equality check predicate on the "march" field. It's identical to MarchEQ. func March(v string) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { @@ -141,17 +127,17 @@ func RepoVersion(v string) predicate.DbPackage { }) } -// BuildTime applies equality check predicate on the "build_time" field. It's identical to BuildTimeEQ. -func BuildTime(v time.Time) predicate.DbPackage { +// BuildTimeStart applies equality check predicate on the "build_time_start" field. It's identical to BuildTimeStartEQ. +func BuildTimeStart(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.EQ(s.C(FieldBuildTime), v)) + s.Where(sql.EQ(s.C(FieldBuildTimeStart), v)) }) } -// BuildDuration applies equality check predicate on the "build_duration" field. It's identical to BuildDurationEQ. -func BuildDuration(v uint64) predicate.DbPackage { +// BuildTimeEnd applies equality check predicate on the "build_time_end" field. It's identical to BuildTimeEndEQ. +func BuildTimeEnd(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.EQ(s.C(FieldBuildDuration), v)) + s.Where(sql.EQ(s.C(FieldBuildTimeEnd), v)) }) } @@ -295,21 +281,21 @@ func PackagesNotNil() predicate.DbPackage { } // StatusEQ applies the EQ predicate on the "status" field. -func StatusEQ(v int) predicate.DbPackage { +func StatusEQ(v Status) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { s.Where(sql.EQ(s.C(FieldStatus), v)) }) } // StatusNEQ applies the NEQ predicate on the "status" field. -func StatusNEQ(v int) predicate.DbPackage { +func StatusNEQ(v Status) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { s.Where(sql.NEQ(s.C(FieldStatus), v)) }) } // StatusIn applies the In predicate on the "status" field. -func StatusIn(vs ...int) predicate.DbPackage { +func StatusIn(vs ...Status) predicate.DbPackage { v := make([]interface{}, len(vs)) for i := range v { v[i] = vs[i] @@ -326,7 +312,7 @@ func StatusIn(vs ...int) predicate.DbPackage { } // StatusNotIn applies the NotIn predicate on the "status" field. -func StatusNotIn(vs ...int) predicate.DbPackage { +func StatusNotIn(vs ...Status) predicate.DbPackage { v := make([]interface{}, len(vs)) for i := range v { v[i] = vs[i] @@ -342,31 +328,17 @@ func StatusNotIn(vs ...int) predicate.DbPackage { }) } -// StatusGT applies the GT predicate on the "status" field. -func StatusGT(v int) predicate.DbPackage { +// StatusIsNil applies the IsNil predicate on the "status" field. +func StatusIsNil() predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.GT(s.C(FieldStatus), v)) + s.Where(sql.IsNull(s.C(FieldStatus))) }) } -// StatusGTE applies the GTE predicate on the "status" field. -func StatusGTE(v int) predicate.DbPackage { +// StatusNotNil applies the NotNil predicate on the "status" field. +func StatusNotNil() predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.GTE(s.C(FieldStatus), v)) - }) -} - -// StatusLT applies the LT predicate on the "status" field. -func StatusLT(v int) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.LT(s.C(FieldStatus), v)) - }) -} - -// StatusLTE applies the LTE predicate on the "status" field. -func StatusLTE(v int) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.LTE(s.C(FieldStatus), v)) + s.Where(sql.NotNull(s.C(FieldStatus))) }) } @@ -496,21 +468,21 @@ func SkipReasonContainsFold(v string) predicate.DbPackage { } // RepositoryEQ applies the EQ predicate on the "repository" field. -func RepositoryEQ(v string) predicate.DbPackage { +func RepositoryEQ(v Repository) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { s.Where(sql.EQ(s.C(FieldRepository), v)) }) } // RepositoryNEQ applies the NEQ predicate on the "repository" field. -func RepositoryNEQ(v string) predicate.DbPackage { +func RepositoryNEQ(v Repository) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { s.Where(sql.NEQ(s.C(FieldRepository), v)) }) } // RepositoryIn applies the In predicate on the "repository" field. -func RepositoryIn(vs ...string) predicate.DbPackage { +func RepositoryIn(vs ...Repository) predicate.DbPackage { v := make([]interface{}, len(vs)) for i := range v { v[i] = vs[i] @@ -527,7 +499,7 @@ func RepositoryIn(vs ...string) predicate.DbPackage { } // RepositoryNotIn applies the NotIn predicate on the "repository" field. -func RepositoryNotIn(vs ...string) predicate.DbPackage { +func RepositoryNotIn(vs ...Repository) predicate.DbPackage { v := make([]interface{}, len(vs)) for i := range v { v[i] = vs[i] @@ -543,69 +515,6 @@ func RepositoryNotIn(vs ...string) predicate.DbPackage { }) } -// RepositoryGT applies the GT predicate on the "repository" field. -func RepositoryGT(v string) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.GT(s.C(FieldRepository), v)) - }) -} - -// RepositoryGTE applies the GTE predicate on the "repository" field. -func RepositoryGTE(v string) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.GTE(s.C(FieldRepository), v)) - }) -} - -// RepositoryLT applies the LT predicate on the "repository" field. -func RepositoryLT(v string) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.LT(s.C(FieldRepository), v)) - }) -} - -// RepositoryLTE applies the LTE predicate on the "repository" field. -func RepositoryLTE(v string) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.LTE(s.C(FieldRepository), v)) - }) -} - -// RepositoryContains applies the Contains predicate on the "repository" field. -func RepositoryContains(v string) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.Contains(s.C(FieldRepository), v)) - }) -} - -// RepositoryHasPrefix applies the HasPrefix predicate on the "repository" field. -func RepositoryHasPrefix(v string) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.HasPrefix(s.C(FieldRepository), v)) - }) -} - -// RepositoryHasSuffix applies the HasSuffix predicate on the "repository" field. -func RepositoryHasSuffix(v string) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.HasSuffix(s.C(FieldRepository), v)) - }) -} - -// RepositoryEqualFold applies the EqualFold predicate on the "repository" field. -func RepositoryEqualFold(v string) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.EqualFold(s.C(FieldRepository), v)) - }) -} - -// RepositoryContainsFold applies the ContainsFold predicate on the "repository" field. -func RepositoryContainsFold(v string) predicate.DbPackage { - return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.ContainsFold(s.C(FieldRepository), v)) - }) -} - // MarchEQ applies the EQ predicate on the "march" field. func MarchEQ(v string) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { @@ -967,22 +876,22 @@ func RepoVersionContainsFold(v string) predicate.DbPackage { }) } -// BuildTimeEQ applies the EQ predicate on the "build_time" field. -func BuildTimeEQ(v time.Time) predicate.DbPackage { +// BuildTimeStartEQ applies the EQ predicate on the "build_time_start" field. +func BuildTimeStartEQ(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.EQ(s.C(FieldBuildTime), v)) + s.Where(sql.EQ(s.C(FieldBuildTimeStart), v)) }) } -// BuildTimeNEQ applies the NEQ predicate on the "build_time" field. -func BuildTimeNEQ(v time.Time) predicate.DbPackage { +// BuildTimeStartNEQ applies the NEQ predicate on the "build_time_start" field. +func BuildTimeStartNEQ(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.NEQ(s.C(FieldBuildTime), v)) + s.Where(sql.NEQ(s.C(FieldBuildTimeStart), v)) }) } -// BuildTimeIn applies the In predicate on the "build_time" field. -func BuildTimeIn(vs ...time.Time) predicate.DbPackage { +// BuildTimeStartIn applies the In predicate on the "build_time_start" field. +func BuildTimeStartIn(vs ...time.Time) predicate.DbPackage { v := make([]interface{}, len(vs)) for i := range v { v[i] = vs[i] @@ -994,12 +903,12 @@ func BuildTimeIn(vs ...time.Time) predicate.DbPackage { s.Where(sql.False()) return } - s.Where(sql.In(s.C(FieldBuildTime), v...)) + s.Where(sql.In(s.C(FieldBuildTimeStart), v...)) }) } -// BuildTimeNotIn applies the NotIn predicate on the "build_time" field. -func BuildTimeNotIn(vs ...time.Time) predicate.DbPackage { +// BuildTimeStartNotIn applies the NotIn predicate on the "build_time_start" field. +func BuildTimeStartNotIn(vs ...time.Time) predicate.DbPackage { v := make([]interface{}, len(vs)) for i := range v { v[i] = vs[i] @@ -1011,68 +920,68 @@ func BuildTimeNotIn(vs ...time.Time) predicate.DbPackage { s.Where(sql.False()) return } - s.Where(sql.NotIn(s.C(FieldBuildTime), v...)) + s.Where(sql.NotIn(s.C(FieldBuildTimeStart), v...)) }) } -// BuildTimeGT applies the GT predicate on the "build_time" field. -func BuildTimeGT(v time.Time) predicate.DbPackage { +// BuildTimeStartGT applies the GT predicate on the "build_time_start" field. +func BuildTimeStartGT(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.GT(s.C(FieldBuildTime), v)) + s.Where(sql.GT(s.C(FieldBuildTimeStart), v)) }) } -// BuildTimeGTE applies the GTE predicate on the "build_time" field. -func BuildTimeGTE(v time.Time) predicate.DbPackage { +// BuildTimeStartGTE applies the GTE predicate on the "build_time_start" field. +func BuildTimeStartGTE(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.GTE(s.C(FieldBuildTime), v)) + s.Where(sql.GTE(s.C(FieldBuildTimeStart), v)) }) } -// BuildTimeLT applies the LT predicate on the "build_time" field. -func BuildTimeLT(v time.Time) predicate.DbPackage { +// BuildTimeStartLT applies the LT predicate on the "build_time_start" field. +func BuildTimeStartLT(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.LT(s.C(FieldBuildTime), v)) + s.Where(sql.LT(s.C(FieldBuildTimeStart), v)) }) } -// BuildTimeLTE applies the LTE predicate on the "build_time" field. -func BuildTimeLTE(v time.Time) predicate.DbPackage { +// BuildTimeStartLTE applies the LTE predicate on the "build_time_start" field. +func BuildTimeStartLTE(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.LTE(s.C(FieldBuildTime), v)) + s.Where(sql.LTE(s.C(FieldBuildTimeStart), v)) }) } -// BuildTimeIsNil applies the IsNil predicate on the "build_time" field. -func BuildTimeIsNil() predicate.DbPackage { +// BuildTimeStartIsNil applies the IsNil predicate on the "build_time_start" field. +func BuildTimeStartIsNil() predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.IsNull(s.C(FieldBuildTime))) + s.Where(sql.IsNull(s.C(FieldBuildTimeStart))) }) } -// BuildTimeNotNil applies the NotNil predicate on the "build_time" field. -func BuildTimeNotNil() predicate.DbPackage { +// BuildTimeStartNotNil applies the NotNil predicate on the "build_time_start" field. +func BuildTimeStartNotNil() predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.NotNull(s.C(FieldBuildTime))) + s.Where(sql.NotNull(s.C(FieldBuildTimeStart))) }) } -// BuildDurationEQ applies the EQ predicate on the "build_duration" field. -func BuildDurationEQ(v uint64) predicate.DbPackage { +// BuildTimeEndEQ applies the EQ predicate on the "build_time_end" field. +func BuildTimeEndEQ(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.EQ(s.C(FieldBuildDuration), v)) + s.Where(sql.EQ(s.C(FieldBuildTimeEnd), v)) }) } -// BuildDurationNEQ applies the NEQ predicate on the "build_duration" field. -func BuildDurationNEQ(v uint64) predicate.DbPackage { +// BuildTimeEndNEQ applies the NEQ predicate on the "build_time_end" field. +func BuildTimeEndNEQ(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.NEQ(s.C(FieldBuildDuration), v)) + s.Where(sql.NEQ(s.C(FieldBuildTimeEnd), v)) }) } -// BuildDurationIn applies the In predicate on the "build_duration" field. -func BuildDurationIn(vs ...uint64) predicate.DbPackage { +// BuildTimeEndIn applies the In predicate on the "build_time_end" field. +func BuildTimeEndIn(vs ...time.Time) predicate.DbPackage { v := make([]interface{}, len(vs)) for i := range v { v[i] = vs[i] @@ -1084,12 +993,12 @@ func BuildDurationIn(vs ...uint64) predicate.DbPackage { s.Where(sql.False()) return } - s.Where(sql.In(s.C(FieldBuildDuration), v...)) + s.Where(sql.In(s.C(FieldBuildTimeEnd), v...)) }) } -// BuildDurationNotIn applies the NotIn predicate on the "build_duration" field. -func BuildDurationNotIn(vs ...uint64) predicate.DbPackage { +// BuildTimeEndNotIn applies the NotIn predicate on the "build_time_end" field. +func BuildTimeEndNotIn(vs ...time.Time) predicate.DbPackage { v := make([]interface{}, len(vs)) for i := range v { v[i] = vs[i] @@ -1101,49 +1010,49 @@ func BuildDurationNotIn(vs ...uint64) predicate.DbPackage { s.Where(sql.False()) return } - s.Where(sql.NotIn(s.C(FieldBuildDuration), v...)) + s.Where(sql.NotIn(s.C(FieldBuildTimeEnd), v...)) }) } -// BuildDurationGT applies the GT predicate on the "build_duration" field. -func BuildDurationGT(v uint64) predicate.DbPackage { +// BuildTimeEndGT applies the GT predicate on the "build_time_end" field. +func BuildTimeEndGT(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.GT(s.C(FieldBuildDuration), v)) + s.Where(sql.GT(s.C(FieldBuildTimeEnd), v)) }) } -// BuildDurationGTE applies the GTE predicate on the "build_duration" field. -func BuildDurationGTE(v uint64) predicate.DbPackage { +// BuildTimeEndGTE applies the GTE predicate on the "build_time_end" field. +func BuildTimeEndGTE(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.GTE(s.C(FieldBuildDuration), v)) + s.Where(sql.GTE(s.C(FieldBuildTimeEnd), v)) }) } -// BuildDurationLT applies the LT predicate on the "build_duration" field. -func BuildDurationLT(v uint64) predicate.DbPackage { +// BuildTimeEndLT applies the LT predicate on the "build_time_end" field. +func BuildTimeEndLT(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.LT(s.C(FieldBuildDuration), v)) + s.Where(sql.LT(s.C(FieldBuildTimeEnd), v)) }) } -// BuildDurationLTE applies the LTE predicate on the "build_duration" field. -func BuildDurationLTE(v uint64) predicate.DbPackage { +// BuildTimeEndLTE applies the LTE predicate on the "build_time_end" field. +func BuildTimeEndLTE(v time.Time) predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.LTE(s.C(FieldBuildDuration), v)) + s.Where(sql.LTE(s.C(FieldBuildTimeEnd), v)) }) } -// BuildDurationIsNil applies the IsNil predicate on the "build_duration" field. -func BuildDurationIsNil() predicate.DbPackage { +// BuildTimeEndIsNil applies the IsNil predicate on the "build_time_end" field. +func BuildTimeEndIsNil() predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.IsNull(s.C(FieldBuildDuration))) + s.Where(sql.IsNull(s.C(FieldBuildTimeEnd))) }) } -// BuildDurationNotNil applies the NotNil predicate on the "build_duration" field. -func BuildDurationNotNil() predicate.DbPackage { +// BuildTimeEndNotNil applies the NotNil predicate on the "build_time_end" field. +func BuildTimeEndNotNil() predicate.DbPackage { return predicate.DbPackage(func(s *sql.Selector) { - s.Where(sql.NotNull(s.C(FieldBuildDuration))) + s.Where(sql.NotNull(s.C(FieldBuildTimeEnd))) }) } diff --git a/ent/dbpackage_create.go b/ent/dbpackage_create.go index 310dc39..600bfd5 100644 --- a/ent/dbpackage_create.go +++ b/ent/dbpackage_create.go @@ -33,15 +33,15 @@ func (dpc *DbPackageCreate) SetPackages(s []string) *DbPackageCreate { } // SetStatus sets the "status" field. -func (dpc *DbPackageCreate) SetStatus(i int) *DbPackageCreate { - dpc.mutation.SetStatus(i) +func (dpc *DbPackageCreate) SetStatus(d dbpackage.Status) *DbPackageCreate { + dpc.mutation.SetStatus(d) return dpc } // SetNillableStatus sets the "status" field if the given value is not nil. -func (dpc *DbPackageCreate) SetNillableStatus(i *int) *DbPackageCreate { - if i != nil { - dpc.SetStatus(*i) +func (dpc *DbPackageCreate) SetNillableStatus(d *dbpackage.Status) *DbPackageCreate { + if d != nil { + dpc.SetStatus(*d) } return dpc } @@ -61,8 +61,8 @@ func (dpc *DbPackageCreate) SetNillableSkipReason(s *string) *DbPackageCreate { } // SetRepository sets the "repository" field. -func (dpc *DbPackageCreate) SetRepository(s string) *DbPackageCreate { - dpc.mutation.SetRepository(s) +func (dpc *DbPackageCreate) SetRepository(d dbpackage.Repository) *DbPackageCreate { + dpc.mutation.SetRepository(d) return dpc } @@ -100,30 +100,30 @@ func (dpc *DbPackageCreate) SetNillableRepoVersion(s *string) *DbPackageCreate { return dpc } -// SetBuildTime sets the "build_time" field. -func (dpc *DbPackageCreate) SetBuildTime(t time.Time) *DbPackageCreate { - dpc.mutation.SetBuildTime(t) +// SetBuildTimeStart sets the "build_time_start" field. +func (dpc *DbPackageCreate) SetBuildTimeStart(t time.Time) *DbPackageCreate { + dpc.mutation.SetBuildTimeStart(t) return dpc } -// SetNillableBuildTime sets the "build_time" field if the given value is not nil. -func (dpc *DbPackageCreate) SetNillableBuildTime(t *time.Time) *DbPackageCreate { +// SetNillableBuildTimeStart sets the "build_time_start" field if the given value is not nil. +func (dpc *DbPackageCreate) SetNillableBuildTimeStart(t *time.Time) *DbPackageCreate { if t != nil { - dpc.SetBuildTime(*t) + dpc.SetBuildTimeStart(*t) } return dpc } -// SetBuildDuration sets the "build_duration" field. -func (dpc *DbPackageCreate) SetBuildDuration(u uint64) *DbPackageCreate { - dpc.mutation.SetBuildDuration(u) +// SetBuildTimeEnd sets the "build_time_end" field. +func (dpc *DbPackageCreate) SetBuildTimeEnd(t time.Time) *DbPackageCreate { + dpc.mutation.SetBuildTimeEnd(t) return dpc } -// SetNillableBuildDuration sets the "build_duration" field if the given value is not nil. -func (dpc *DbPackageCreate) SetNillableBuildDuration(u *uint64) *DbPackageCreate { - if u != nil { - dpc.SetBuildDuration(*u) +// SetNillableBuildTimeEnd sets the "build_time_end" field if the given value is not nil. +func (dpc *DbPackageCreate) SetNillableBuildTimeEnd(t *time.Time) *DbPackageCreate { + if t != nil { + dpc.SetBuildTimeEnd(*t) } return dpc } @@ -243,9 +243,6 @@ func (dpc *DbPackageCreate) check() error { return &ValidationError{Name: "pkgbase", err: fmt.Errorf(`ent: validator failed for field "pkgbase": %w`, err)} } } - if _, ok := dpc.mutation.Status(); !ok { - return &ValidationError{Name: "status", err: errors.New(`ent: missing required field "status"`)} - } if v, ok := dpc.mutation.Status(); ok { if err := dbpackage.StatusValidator(v); err != nil { return &ValidationError{Name: "status", err: fmt.Errorf(`ent: validator failed for field "status": %w`, err)} @@ -267,11 +264,6 @@ func (dpc *DbPackageCreate) check() error { return &ValidationError{Name: "march", err: fmt.Errorf(`ent: validator failed for field "march": %w`, err)} } } - if v, ok := dpc.mutation.BuildDuration(); ok { - if err := dbpackage.BuildDurationValidator(v); err != nil { - return &ValidationError{Name: "build_duration", err: fmt.Errorf(`ent: validator failed for field "build_duration": %w`, err)} - } - } return nil } @@ -317,7 +309,7 @@ func (dpc *DbPackageCreate) createSpec() (*DbPackage, *sqlgraph.CreateSpec) { } if value, ok := dpc.mutation.Status(); ok { _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ - Type: field.TypeInt, + Type: field.TypeEnum, Value: value, Column: dbpackage.FieldStatus, }) @@ -333,7 +325,7 @@ func (dpc *DbPackageCreate) createSpec() (*DbPackage, *sqlgraph.CreateSpec) { } if value, ok := dpc.mutation.Repository(); ok { _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ - Type: field.TypeString, + Type: field.TypeEnum, Value: value, Column: dbpackage.FieldRepository, }) @@ -363,21 +355,21 @@ func (dpc *DbPackageCreate) createSpec() (*DbPackage, *sqlgraph.CreateSpec) { }) _node.RepoVersion = value } - if value, ok := dpc.mutation.BuildTime(); ok { + if value, ok := dpc.mutation.BuildTimeStart(); ok { _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ Type: field.TypeTime, Value: value, - Column: dbpackage.FieldBuildTime, + Column: dbpackage.FieldBuildTimeStart, }) - _node.BuildTime = value + _node.BuildTimeStart = value } - if value, ok := dpc.mutation.BuildDuration(); ok { + if value, ok := dpc.mutation.BuildTimeEnd(); ok { _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ - Type: field.TypeUint64, + Type: field.TypeTime, Value: value, - Column: dbpackage.FieldBuildDuration, + Column: dbpackage.FieldBuildTimeEnd, }) - _node.BuildDuration = value + _node.BuildTimeEnd = value } if value, ok := dpc.mutation.Updated(); ok { _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ diff --git a/ent/dbpackage_query.go b/ent/dbpackage_query.go index e9e9417..6cd8a49 100644 --- a/ent/dbpackage_query.go +++ b/ent/dbpackage_query.go @@ -24,6 +24,7 @@ type DbPackageQuery struct { order []OrderFunc fields []string predicates []predicate.DbPackage + modifiers []func(s *sql.Selector) // intermediate query (i.e. traversal path). sql *sql.Selector path func(context.Context) (*sql.Selector, error) @@ -325,6 +326,9 @@ func (dpq *DbPackageQuery) sqlAll(ctx context.Context) ([]*DbPackage, error) { node := nodes[len(nodes)-1] return node.assignValues(columns, values) } + if len(dpq.modifiers) > 0 { + _spec.Modifiers = dpq.modifiers + } if err := sqlgraph.QueryNodes(ctx, dpq.driver, _spec); err != nil { return nil, err } @@ -336,6 +340,9 @@ func (dpq *DbPackageQuery) sqlAll(ctx context.Context) ([]*DbPackage, error) { func (dpq *DbPackageQuery) sqlCount(ctx context.Context) (int, error) { _spec := dpq.querySpec() + if len(dpq.modifiers) > 0 { + _spec.Modifiers = dpq.modifiers + } return sqlgraph.CountNodes(ctx, dpq.driver, _spec) } @@ -407,6 +414,9 @@ func (dpq *DbPackageQuery) sqlQuery(ctx context.Context) *sql.Selector { selector = dpq.sql selector.Select(selector.Columns(columns...)...) } + for _, m := range dpq.modifiers { + m(selector) + } for _, p := range dpq.predicates { p(selector) } @@ -424,6 +434,12 @@ func (dpq *DbPackageQuery) sqlQuery(ctx context.Context) *sql.Selector { return selector } +// Modify adds a query modifier for attaching custom logic to queries. +func (dpq *DbPackageQuery) Modify(modifiers ...func(s *sql.Selector)) *DbPackageSelect { + dpq.modifiers = append(dpq.modifiers, modifiers...) + return dpq.Select() +} + // DbPackageGroupBy is the group-by builder for DbPackage entities. type DbPackageGroupBy struct { config @@ -913,3 +929,9 @@ func (dps *DbPackageSelect) sqlScan(ctx context.Context, v interface{}) error { defer rows.Close() return sql.ScanSlice(rows, v) } + +// Modify adds a query modifier for attaching custom logic to queries. +func (dps *DbPackageSelect) Modify(modifiers ...func(s *sql.Selector)) *DbPackageSelect { + dps.modifiers = append(dps.modifiers, modifiers...) + return dps +} diff --git a/ent/dbpackage_update.go b/ent/dbpackage_update.go index 287a250..b886af7 100644 --- a/ent/dbpackage_update.go +++ b/ent/dbpackage_update.go @@ -40,23 +40,22 @@ func (dpu *DbPackageUpdate) ClearPackages() *DbPackageUpdate { } // SetStatus sets the "status" field. -func (dpu *DbPackageUpdate) SetStatus(i int) *DbPackageUpdate { - dpu.mutation.ResetStatus() - dpu.mutation.SetStatus(i) +func (dpu *DbPackageUpdate) SetStatus(d dbpackage.Status) *DbPackageUpdate { + dpu.mutation.SetStatus(d) return dpu } // SetNillableStatus sets the "status" field if the given value is not nil. -func (dpu *DbPackageUpdate) SetNillableStatus(i *int) *DbPackageUpdate { - if i != nil { - dpu.SetStatus(*i) +func (dpu *DbPackageUpdate) SetNillableStatus(d *dbpackage.Status) *DbPackageUpdate { + if d != nil { + dpu.SetStatus(*d) } return dpu } -// AddStatus adds i to the "status" field. -func (dpu *DbPackageUpdate) AddStatus(i int) *DbPackageUpdate { - dpu.mutation.AddStatus(i) +// ClearStatus clears the value of the "status" field. +func (dpu *DbPackageUpdate) ClearStatus() *DbPackageUpdate { + dpu.mutation.ClearStatus() return dpu } @@ -81,8 +80,8 @@ func (dpu *DbPackageUpdate) ClearSkipReason() *DbPackageUpdate { } // SetRepository sets the "repository" field. -func (dpu *DbPackageUpdate) SetRepository(s string) *DbPackageUpdate { - dpu.mutation.SetRepository(s) +func (dpu *DbPackageUpdate) SetRepository(d dbpackage.Repository) *DbPackageUpdate { + dpu.mutation.SetRepository(d) return dpu } @@ -132,50 +131,43 @@ func (dpu *DbPackageUpdate) ClearRepoVersion() *DbPackageUpdate { return dpu } -// SetBuildTime sets the "build_time" field. -func (dpu *DbPackageUpdate) SetBuildTime(t time.Time) *DbPackageUpdate { - dpu.mutation.SetBuildTime(t) +// SetBuildTimeStart sets the "build_time_start" field. +func (dpu *DbPackageUpdate) SetBuildTimeStart(t time.Time) *DbPackageUpdate { + dpu.mutation.SetBuildTimeStart(t) return dpu } -// SetNillableBuildTime sets the "build_time" field if the given value is not nil. -func (dpu *DbPackageUpdate) SetNillableBuildTime(t *time.Time) *DbPackageUpdate { +// SetNillableBuildTimeStart sets the "build_time_start" field if the given value is not nil. +func (dpu *DbPackageUpdate) SetNillableBuildTimeStart(t *time.Time) *DbPackageUpdate { if t != nil { - dpu.SetBuildTime(*t) + dpu.SetBuildTimeStart(*t) } return dpu } -// ClearBuildTime clears the value of the "build_time" field. -func (dpu *DbPackageUpdate) ClearBuildTime() *DbPackageUpdate { - dpu.mutation.ClearBuildTime() +// ClearBuildTimeStart clears the value of the "build_time_start" field. +func (dpu *DbPackageUpdate) ClearBuildTimeStart() *DbPackageUpdate { + dpu.mutation.ClearBuildTimeStart() return dpu } -// SetBuildDuration sets the "build_duration" field. -func (dpu *DbPackageUpdate) SetBuildDuration(u uint64) *DbPackageUpdate { - dpu.mutation.ResetBuildDuration() - dpu.mutation.SetBuildDuration(u) +// SetBuildTimeEnd sets the "build_time_end" field. +func (dpu *DbPackageUpdate) SetBuildTimeEnd(t time.Time) *DbPackageUpdate { + dpu.mutation.SetBuildTimeEnd(t) return dpu } -// SetNillableBuildDuration sets the "build_duration" field if the given value is not nil. -func (dpu *DbPackageUpdate) SetNillableBuildDuration(u *uint64) *DbPackageUpdate { - if u != nil { - dpu.SetBuildDuration(*u) +// SetNillableBuildTimeEnd sets the "build_time_end" field if the given value is not nil. +func (dpu *DbPackageUpdate) SetNillableBuildTimeEnd(t *time.Time) *DbPackageUpdate { + if t != nil { + dpu.SetBuildTimeEnd(*t) } return dpu } -// AddBuildDuration adds u to the "build_duration" field. -func (dpu *DbPackageUpdate) AddBuildDuration(u uint64) *DbPackageUpdate { - dpu.mutation.AddBuildDuration(u) - return dpu -} - -// ClearBuildDuration clears the value of the "build_duration" field. -func (dpu *DbPackageUpdate) ClearBuildDuration() *DbPackageUpdate { - dpu.mutation.ClearBuildDuration() +// ClearBuildTimeEnd clears the value of the "build_time_end" field. +func (dpu *DbPackageUpdate) ClearBuildTimeEnd() *DbPackageUpdate { + dpu.mutation.ClearBuildTimeEnd() return dpu } @@ -301,11 +293,6 @@ func (dpu *DbPackageUpdate) check() error { return &ValidationError{Name: "march", err: fmt.Errorf("ent: validator failed for field \"march\": %w", err)} } } - if v, ok := dpu.mutation.BuildDuration(); ok { - if err := dbpackage.BuildDurationValidator(v); err != nil { - return &ValidationError{Name: "build_duration", err: fmt.Errorf("ent: validator failed for field \"build_duration\": %w", err)} - } - } return nil } @@ -342,15 +329,14 @@ func (dpu *DbPackageUpdate) sqlSave(ctx context.Context) (n int, err error) { } if value, ok := dpu.mutation.Status(); ok { _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ - Type: field.TypeInt, + Type: field.TypeEnum, Value: value, Column: dbpackage.FieldStatus, }) } - if value, ok := dpu.mutation.AddedStatus(); ok { - _spec.Fields.Add = append(_spec.Fields.Add, &sqlgraph.FieldSpec{ - Type: field.TypeInt, - Value: value, + if dpu.mutation.StatusCleared() { + _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ + Type: field.TypeEnum, Column: dbpackage.FieldStatus, }) } @@ -369,7 +355,7 @@ func (dpu *DbPackageUpdate) sqlSave(ctx context.Context) (n int, err error) { } if value, ok := dpu.mutation.Repository(); ok { _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ - Type: field.TypeString, + Type: field.TypeEnum, Value: value, Column: dbpackage.FieldRepository, }) @@ -407,37 +393,30 @@ func (dpu *DbPackageUpdate) sqlSave(ctx context.Context) (n int, err error) { Column: dbpackage.FieldRepoVersion, }) } - if value, ok := dpu.mutation.BuildTime(); ok { + if value, ok := dpu.mutation.BuildTimeStart(); ok { _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ Type: field.TypeTime, Value: value, - Column: dbpackage.FieldBuildTime, + Column: dbpackage.FieldBuildTimeStart, }) } - if dpu.mutation.BuildTimeCleared() { + if dpu.mutation.BuildTimeStartCleared() { _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ Type: field.TypeTime, - Column: dbpackage.FieldBuildTime, + Column: dbpackage.FieldBuildTimeStart, }) } - if value, ok := dpu.mutation.BuildDuration(); ok { + if value, ok := dpu.mutation.BuildTimeEnd(); ok { _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ - Type: field.TypeUint64, + Type: field.TypeTime, Value: value, - Column: dbpackage.FieldBuildDuration, + Column: dbpackage.FieldBuildTimeEnd, }) } - if value, ok := dpu.mutation.AddedBuildDuration(); ok { - _spec.Fields.Add = append(_spec.Fields.Add, &sqlgraph.FieldSpec{ - Type: field.TypeUint64, - Value: value, - Column: dbpackage.FieldBuildDuration, - }) - } - if dpu.mutation.BuildDurationCleared() { + if dpu.mutation.BuildTimeEndCleared() { _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ - Type: field.TypeUint64, - Column: dbpackage.FieldBuildDuration, + Type: field.TypeTime, + Column: dbpackage.FieldBuildTimeEnd, }) } if value, ok := dpu.mutation.Updated(); ok { @@ -498,23 +477,22 @@ func (dpuo *DbPackageUpdateOne) ClearPackages() *DbPackageUpdateOne { } // SetStatus sets the "status" field. -func (dpuo *DbPackageUpdateOne) SetStatus(i int) *DbPackageUpdateOne { - dpuo.mutation.ResetStatus() - dpuo.mutation.SetStatus(i) +func (dpuo *DbPackageUpdateOne) SetStatus(d dbpackage.Status) *DbPackageUpdateOne { + dpuo.mutation.SetStatus(d) return dpuo } // SetNillableStatus sets the "status" field if the given value is not nil. -func (dpuo *DbPackageUpdateOne) SetNillableStatus(i *int) *DbPackageUpdateOne { - if i != nil { - dpuo.SetStatus(*i) +func (dpuo *DbPackageUpdateOne) SetNillableStatus(d *dbpackage.Status) *DbPackageUpdateOne { + if d != nil { + dpuo.SetStatus(*d) } return dpuo } -// AddStatus adds i to the "status" field. -func (dpuo *DbPackageUpdateOne) AddStatus(i int) *DbPackageUpdateOne { - dpuo.mutation.AddStatus(i) +// ClearStatus clears the value of the "status" field. +func (dpuo *DbPackageUpdateOne) ClearStatus() *DbPackageUpdateOne { + dpuo.mutation.ClearStatus() return dpuo } @@ -539,8 +517,8 @@ func (dpuo *DbPackageUpdateOne) ClearSkipReason() *DbPackageUpdateOne { } // SetRepository sets the "repository" field. -func (dpuo *DbPackageUpdateOne) SetRepository(s string) *DbPackageUpdateOne { - dpuo.mutation.SetRepository(s) +func (dpuo *DbPackageUpdateOne) SetRepository(d dbpackage.Repository) *DbPackageUpdateOne { + dpuo.mutation.SetRepository(d) return dpuo } @@ -590,50 +568,43 @@ func (dpuo *DbPackageUpdateOne) ClearRepoVersion() *DbPackageUpdateOne { return dpuo } -// SetBuildTime sets the "build_time" field. -func (dpuo *DbPackageUpdateOne) SetBuildTime(t time.Time) *DbPackageUpdateOne { - dpuo.mutation.SetBuildTime(t) +// SetBuildTimeStart sets the "build_time_start" field. +func (dpuo *DbPackageUpdateOne) SetBuildTimeStart(t time.Time) *DbPackageUpdateOne { + dpuo.mutation.SetBuildTimeStart(t) return dpuo } -// SetNillableBuildTime sets the "build_time" field if the given value is not nil. -func (dpuo *DbPackageUpdateOne) SetNillableBuildTime(t *time.Time) *DbPackageUpdateOne { +// SetNillableBuildTimeStart sets the "build_time_start" field if the given value is not nil. +func (dpuo *DbPackageUpdateOne) SetNillableBuildTimeStart(t *time.Time) *DbPackageUpdateOne { if t != nil { - dpuo.SetBuildTime(*t) + dpuo.SetBuildTimeStart(*t) } return dpuo } -// ClearBuildTime clears the value of the "build_time" field. -func (dpuo *DbPackageUpdateOne) ClearBuildTime() *DbPackageUpdateOne { - dpuo.mutation.ClearBuildTime() +// ClearBuildTimeStart clears the value of the "build_time_start" field. +func (dpuo *DbPackageUpdateOne) ClearBuildTimeStart() *DbPackageUpdateOne { + dpuo.mutation.ClearBuildTimeStart() return dpuo } -// SetBuildDuration sets the "build_duration" field. -func (dpuo *DbPackageUpdateOne) SetBuildDuration(u uint64) *DbPackageUpdateOne { - dpuo.mutation.ResetBuildDuration() - dpuo.mutation.SetBuildDuration(u) +// SetBuildTimeEnd sets the "build_time_end" field. +func (dpuo *DbPackageUpdateOne) SetBuildTimeEnd(t time.Time) *DbPackageUpdateOne { + dpuo.mutation.SetBuildTimeEnd(t) return dpuo } -// SetNillableBuildDuration sets the "build_duration" field if the given value is not nil. -func (dpuo *DbPackageUpdateOne) SetNillableBuildDuration(u *uint64) *DbPackageUpdateOne { - if u != nil { - dpuo.SetBuildDuration(*u) +// SetNillableBuildTimeEnd sets the "build_time_end" field if the given value is not nil. +func (dpuo *DbPackageUpdateOne) SetNillableBuildTimeEnd(t *time.Time) *DbPackageUpdateOne { + if t != nil { + dpuo.SetBuildTimeEnd(*t) } return dpuo } -// AddBuildDuration adds u to the "build_duration" field. -func (dpuo *DbPackageUpdateOne) AddBuildDuration(u uint64) *DbPackageUpdateOne { - dpuo.mutation.AddBuildDuration(u) - return dpuo -} - -// ClearBuildDuration clears the value of the "build_duration" field. -func (dpuo *DbPackageUpdateOne) ClearBuildDuration() *DbPackageUpdateOne { - dpuo.mutation.ClearBuildDuration() +// ClearBuildTimeEnd clears the value of the "build_time_end" field. +func (dpuo *DbPackageUpdateOne) ClearBuildTimeEnd() *DbPackageUpdateOne { + dpuo.mutation.ClearBuildTimeEnd() return dpuo } @@ -766,11 +737,6 @@ func (dpuo *DbPackageUpdateOne) check() error { return &ValidationError{Name: "march", err: fmt.Errorf("ent: validator failed for field \"march\": %w", err)} } } - if v, ok := dpuo.mutation.BuildDuration(); ok { - if err := dbpackage.BuildDurationValidator(v); err != nil { - return &ValidationError{Name: "build_duration", err: fmt.Errorf("ent: validator failed for field \"build_duration\": %w", err)} - } - } return nil } @@ -824,15 +790,14 @@ func (dpuo *DbPackageUpdateOne) sqlSave(ctx context.Context) (_node *DbPackage, } if value, ok := dpuo.mutation.Status(); ok { _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ - Type: field.TypeInt, + Type: field.TypeEnum, Value: value, Column: dbpackage.FieldStatus, }) } - if value, ok := dpuo.mutation.AddedStatus(); ok { - _spec.Fields.Add = append(_spec.Fields.Add, &sqlgraph.FieldSpec{ - Type: field.TypeInt, - Value: value, + if dpuo.mutation.StatusCleared() { + _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ + Type: field.TypeEnum, Column: dbpackage.FieldStatus, }) } @@ -851,7 +816,7 @@ func (dpuo *DbPackageUpdateOne) sqlSave(ctx context.Context) (_node *DbPackage, } if value, ok := dpuo.mutation.Repository(); ok { _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ - Type: field.TypeString, + Type: field.TypeEnum, Value: value, Column: dbpackage.FieldRepository, }) @@ -889,37 +854,30 @@ func (dpuo *DbPackageUpdateOne) sqlSave(ctx context.Context) (_node *DbPackage, Column: dbpackage.FieldRepoVersion, }) } - if value, ok := dpuo.mutation.BuildTime(); ok { + if value, ok := dpuo.mutation.BuildTimeStart(); ok { _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ Type: field.TypeTime, Value: value, - Column: dbpackage.FieldBuildTime, + Column: dbpackage.FieldBuildTimeStart, }) } - if dpuo.mutation.BuildTimeCleared() { + if dpuo.mutation.BuildTimeStartCleared() { _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ Type: field.TypeTime, - Column: dbpackage.FieldBuildTime, + Column: dbpackage.FieldBuildTimeStart, }) } - if value, ok := dpuo.mutation.BuildDuration(); ok { + if value, ok := dpuo.mutation.BuildTimeEnd(); ok { _spec.Fields.Set = append(_spec.Fields.Set, &sqlgraph.FieldSpec{ - Type: field.TypeUint64, + Type: field.TypeTime, Value: value, - Column: dbpackage.FieldBuildDuration, + Column: dbpackage.FieldBuildTimeEnd, }) } - if value, ok := dpuo.mutation.AddedBuildDuration(); ok { - _spec.Fields.Add = append(_spec.Fields.Add, &sqlgraph.FieldSpec{ - Type: field.TypeUint64, - Value: value, - Column: dbpackage.FieldBuildDuration, - }) - } - if dpuo.mutation.BuildDurationCleared() { + if dpuo.mutation.BuildTimeEndCleared() { _spec.Fields.Clear = append(_spec.Fields.Clear, &sqlgraph.FieldSpec{ - Type: field.TypeUint64, - Column: dbpackage.FieldBuildDuration, + Type: field.TypeTime, + Column: dbpackage.FieldBuildTimeEnd, }) } if value, ok := dpuo.mutation.Updated(); ok { diff --git a/ent/generate.go b/ent/generate.go new file mode 100644 index 0000000..75e936f --- /dev/null +++ b/ent/generate.go @@ -0,0 +1,3 @@ +package ent + +//go:generate go run -mod=mod entgo.io/ent/cmd/ent generate --feature sql/modifier ./schema diff --git a/ent/migrate/schema.go b/ent/migrate/schema.go index a735d74..96d6cb7 100644 --- a/ent/migrate/schema.go +++ b/ent/migrate/schema.go @@ -13,14 +13,14 @@ var ( {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "pkgbase", Type: field.TypeString, Unique: true}, {Name: "packages", Type: field.TypeJSON, Nullable: true}, - {Name: "status", Type: field.TypeInt, Default: 6}, + {Name: "status", Type: field.TypeEnum, Nullable: true, Enums: []string{"skipped", "failed", "build", "queued", "building", "latest", "signing", "unknown"}, Default: "unknown"}, {Name: "skip_reason", Type: field.TypeString, Nullable: true}, - {Name: "repository", Type: field.TypeString}, + {Name: "repository", Type: field.TypeEnum, Enums: []string{"extra", "core", "community"}}, {Name: "march", Type: field.TypeString}, {Name: "version", Type: field.TypeString, Nullable: true}, {Name: "repo_version", Type: field.TypeString, Nullable: true}, - {Name: "build_time", Type: field.TypeTime, Nullable: true}, - {Name: "build_duration", Type: field.TypeUint64, Nullable: true}, + {Name: "build_time_start", Type: field.TypeTime, Nullable: true}, + {Name: "build_time_end", Type: field.TypeTime, Nullable: true}, {Name: "updated", Type: field.TypeTime, Nullable: true}, {Name: "hash", Type: field.TypeString, Nullable: true}, } diff --git a/ent/mutation.go b/ent/mutation.go index d7ab38e..4220f0c 100644 --- a/ent/mutation.go +++ b/ent/mutation.go @@ -29,27 +29,25 @@ const ( // DbPackageMutation represents an operation that mutates the DbPackage nodes in the graph. type DbPackageMutation struct { config - op Op - typ string - id *int - pkgbase *string - packages *[]string - status *int - addstatus *int - skip_reason *string - repository *string - march *string - version *string - repo_version *string - build_time *time.Time - build_duration *uint64 - addbuild_duration *uint64 - updated *time.Time - hash *string - clearedFields map[string]struct{} - done bool - oldValue func(context.Context) (*DbPackage, error) - predicates []predicate.DbPackage + op Op + typ string + id *int + pkgbase *string + packages *[]string + status *dbpackage.Status + skip_reason *string + repository *dbpackage.Repository + march *string + version *string + repo_version *string + build_time_start *time.Time + build_time_end *time.Time + updated *time.Time + hash *string + clearedFields map[string]struct{} + done bool + oldValue func(context.Context) (*DbPackage, error) + predicates []predicate.DbPackage } var _ ent.Mutation = (*DbPackageMutation)(nil) @@ -217,13 +215,12 @@ func (m *DbPackageMutation) ResetPackages() { } // SetStatus sets the "status" field. -func (m *DbPackageMutation) SetStatus(i int) { - m.status = &i - m.addstatus = nil +func (m *DbPackageMutation) SetStatus(d dbpackage.Status) { + m.status = &d } // Status returns the value of the "status" field in the mutation. -func (m *DbPackageMutation) Status() (r int, exists bool) { +func (m *DbPackageMutation) Status() (r dbpackage.Status, exists bool) { v := m.status if v == nil { return @@ -234,7 +231,7 @@ func (m *DbPackageMutation) Status() (r int, exists bool) { // OldStatus returns the old "status" field's value of the DbPackage entity. // If the DbPackage object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *DbPackageMutation) OldStatus(ctx context.Context) (v int, err error) { +func (m *DbPackageMutation) OldStatus(ctx context.Context) (v dbpackage.Status, err error) { if !m.op.Is(OpUpdateOne) { return v, fmt.Errorf("OldStatus is only allowed on UpdateOne operations") } @@ -248,28 +245,22 @@ func (m *DbPackageMutation) OldStatus(ctx context.Context) (v int, err error) { return oldValue.Status, nil } -// AddStatus adds i to the "status" field. -func (m *DbPackageMutation) AddStatus(i int) { - if m.addstatus != nil { - *m.addstatus += i - } else { - m.addstatus = &i - } +// ClearStatus clears the value of the "status" field. +func (m *DbPackageMutation) ClearStatus() { + m.status = nil + m.clearedFields[dbpackage.FieldStatus] = struct{}{} } -// AddedStatus returns the value that was added to the "status" field in this mutation. -func (m *DbPackageMutation) AddedStatus() (r int, exists bool) { - v := m.addstatus - if v == nil { - return - } - return *v, true +// StatusCleared returns if the "status" field was cleared in this mutation. +func (m *DbPackageMutation) StatusCleared() bool { + _, ok := m.clearedFields[dbpackage.FieldStatus] + return ok } // ResetStatus resets all changes to the "status" field. func (m *DbPackageMutation) ResetStatus() { m.status = nil - m.addstatus = nil + delete(m.clearedFields, dbpackage.FieldStatus) } // SetSkipReason sets the "skip_reason" field. @@ -322,12 +313,12 @@ func (m *DbPackageMutation) ResetSkipReason() { } // SetRepository sets the "repository" field. -func (m *DbPackageMutation) SetRepository(s string) { - m.repository = &s +func (m *DbPackageMutation) SetRepository(d dbpackage.Repository) { + m.repository = &d } // Repository returns the value of the "repository" field in the mutation. -func (m *DbPackageMutation) Repository() (r string, exists bool) { +func (m *DbPackageMutation) Repository() (r dbpackage.Repository, exists bool) { v := m.repository if v == nil { return @@ -338,7 +329,7 @@ func (m *DbPackageMutation) Repository() (r string, exists bool) { // OldRepository returns the old "repository" field's value of the DbPackage entity. // If the DbPackage object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *DbPackageMutation) OldRepository(ctx context.Context) (v string, err error) { +func (m *DbPackageMutation) OldRepository(ctx context.Context) (v dbpackage.Repository, err error) { if !m.op.Is(OpUpdateOne) { return v, fmt.Errorf("OldRepository is only allowed on UpdateOne operations") } @@ -491,123 +482,102 @@ func (m *DbPackageMutation) ResetRepoVersion() { delete(m.clearedFields, dbpackage.FieldRepoVersion) } -// SetBuildTime sets the "build_time" field. -func (m *DbPackageMutation) SetBuildTime(t time.Time) { - m.build_time = &t +// SetBuildTimeStart sets the "build_time_start" field. +func (m *DbPackageMutation) SetBuildTimeStart(t time.Time) { + m.build_time_start = &t } -// BuildTime returns the value of the "build_time" field in the mutation. -func (m *DbPackageMutation) BuildTime() (r time.Time, exists bool) { - v := m.build_time +// BuildTimeStart returns the value of the "build_time_start" field in the mutation. +func (m *DbPackageMutation) BuildTimeStart() (r time.Time, exists bool) { + v := m.build_time_start if v == nil { return } return *v, true } -// OldBuildTime returns the old "build_time" field's value of the DbPackage entity. +// OldBuildTimeStart returns the old "build_time_start" field's value of the DbPackage entity. // If the DbPackage object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *DbPackageMutation) OldBuildTime(ctx context.Context) (v time.Time, err error) { +func (m *DbPackageMutation) OldBuildTimeStart(ctx context.Context) (v time.Time, err error) { if !m.op.Is(OpUpdateOne) { - return v, fmt.Errorf("OldBuildTime is only allowed on UpdateOne operations") + return v, fmt.Errorf("OldBuildTimeStart is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, fmt.Errorf("OldBuildTime requires an ID field in the mutation") + return v, fmt.Errorf("OldBuildTimeStart requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldBuildTime: %w", err) + return v, fmt.Errorf("querying old value for OldBuildTimeStart: %w", err) } - return oldValue.BuildTime, nil + return oldValue.BuildTimeStart, nil } -// ClearBuildTime clears the value of the "build_time" field. -func (m *DbPackageMutation) ClearBuildTime() { - m.build_time = nil - m.clearedFields[dbpackage.FieldBuildTime] = struct{}{} +// ClearBuildTimeStart clears the value of the "build_time_start" field. +func (m *DbPackageMutation) ClearBuildTimeStart() { + m.build_time_start = nil + m.clearedFields[dbpackage.FieldBuildTimeStart] = struct{}{} } -// BuildTimeCleared returns if the "build_time" field was cleared in this mutation. -func (m *DbPackageMutation) BuildTimeCleared() bool { - _, ok := m.clearedFields[dbpackage.FieldBuildTime] +// BuildTimeStartCleared returns if the "build_time_start" field was cleared in this mutation. +func (m *DbPackageMutation) BuildTimeStartCleared() bool { + _, ok := m.clearedFields[dbpackage.FieldBuildTimeStart] return ok } -// ResetBuildTime resets all changes to the "build_time" field. -func (m *DbPackageMutation) ResetBuildTime() { - m.build_time = nil - delete(m.clearedFields, dbpackage.FieldBuildTime) +// ResetBuildTimeStart resets all changes to the "build_time_start" field. +func (m *DbPackageMutation) ResetBuildTimeStart() { + m.build_time_start = nil + delete(m.clearedFields, dbpackage.FieldBuildTimeStart) } -// SetBuildDuration sets the "build_duration" field. -func (m *DbPackageMutation) SetBuildDuration(u uint64) { - m.build_duration = &u - m.addbuild_duration = nil +// SetBuildTimeEnd sets the "build_time_end" field. +func (m *DbPackageMutation) SetBuildTimeEnd(t time.Time) { + m.build_time_end = &t } -// BuildDuration returns the value of the "build_duration" field in the mutation. -func (m *DbPackageMutation) BuildDuration() (r uint64, exists bool) { - v := m.build_duration +// BuildTimeEnd returns the value of the "build_time_end" field in the mutation. +func (m *DbPackageMutation) BuildTimeEnd() (r time.Time, exists bool) { + v := m.build_time_end if v == nil { return } return *v, true } -// OldBuildDuration returns the old "build_duration" field's value of the DbPackage entity. +// OldBuildTimeEnd returns the old "build_time_end" field's value of the DbPackage entity. // If the DbPackage object wasn't provided to the builder, the object is fetched from the database. // An error is returned if the mutation operation is not UpdateOne, or the database query fails. -func (m *DbPackageMutation) OldBuildDuration(ctx context.Context) (v uint64, err error) { +func (m *DbPackageMutation) OldBuildTimeEnd(ctx context.Context) (v time.Time, err error) { if !m.op.Is(OpUpdateOne) { - return v, fmt.Errorf("OldBuildDuration is only allowed on UpdateOne operations") + return v, fmt.Errorf("OldBuildTimeEnd is only allowed on UpdateOne operations") } if m.id == nil || m.oldValue == nil { - return v, fmt.Errorf("OldBuildDuration requires an ID field in the mutation") + return v, fmt.Errorf("OldBuildTimeEnd requires an ID field in the mutation") } oldValue, err := m.oldValue(ctx) if err != nil { - return v, fmt.Errorf("querying old value for OldBuildDuration: %w", err) + return v, fmt.Errorf("querying old value for OldBuildTimeEnd: %w", err) } - return oldValue.BuildDuration, nil + return oldValue.BuildTimeEnd, nil } -// AddBuildDuration adds u to the "build_duration" field. -func (m *DbPackageMutation) AddBuildDuration(u uint64) { - if m.addbuild_duration != nil { - *m.addbuild_duration += u - } else { - m.addbuild_duration = &u - } +// ClearBuildTimeEnd clears the value of the "build_time_end" field. +func (m *DbPackageMutation) ClearBuildTimeEnd() { + m.build_time_end = nil + m.clearedFields[dbpackage.FieldBuildTimeEnd] = struct{}{} } -// AddedBuildDuration returns the value that was added to the "build_duration" field in this mutation. -func (m *DbPackageMutation) AddedBuildDuration() (r uint64, exists bool) { - v := m.addbuild_duration - if v == nil { - return - } - return *v, true -} - -// ClearBuildDuration clears the value of the "build_duration" field. -func (m *DbPackageMutation) ClearBuildDuration() { - m.build_duration = nil - m.addbuild_duration = nil - m.clearedFields[dbpackage.FieldBuildDuration] = struct{}{} -} - -// BuildDurationCleared returns if the "build_duration" field was cleared in this mutation. -func (m *DbPackageMutation) BuildDurationCleared() bool { - _, ok := m.clearedFields[dbpackage.FieldBuildDuration] +// BuildTimeEndCleared returns if the "build_time_end" field was cleared in this mutation. +func (m *DbPackageMutation) BuildTimeEndCleared() bool { + _, ok := m.clearedFields[dbpackage.FieldBuildTimeEnd] return ok } -// ResetBuildDuration resets all changes to the "build_duration" field. -func (m *DbPackageMutation) ResetBuildDuration() { - m.build_duration = nil - m.addbuild_duration = nil - delete(m.clearedFields, dbpackage.FieldBuildDuration) +// ResetBuildTimeEnd resets all changes to the "build_time_end" field. +func (m *DbPackageMutation) ResetBuildTimeEnd() { + m.build_time_end = nil + delete(m.clearedFields, dbpackage.FieldBuildTimeEnd) } // SetUpdated sets the "updated" field. @@ -752,11 +722,11 @@ func (m *DbPackageMutation) Fields() []string { if m.repo_version != nil { fields = append(fields, dbpackage.FieldRepoVersion) } - if m.build_time != nil { - fields = append(fields, dbpackage.FieldBuildTime) + if m.build_time_start != nil { + fields = append(fields, dbpackage.FieldBuildTimeStart) } - if m.build_duration != nil { - fields = append(fields, dbpackage.FieldBuildDuration) + if m.build_time_end != nil { + fields = append(fields, dbpackage.FieldBuildTimeEnd) } if m.updated != nil { fields = append(fields, dbpackage.FieldUpdated) @@ -788,10 +758,10 @@ func (m *DbPackageMutation) Field(name string) (ent.Value, bool) { return m.Version() case dbpackage.FieldRepoVersion: return m.RepoVersion() - case dbpackage.FieldBuildTime: - return m.BuildTime() - case dbpackage.FieldBuildDuration: - return m.BuildDuration() + case dbpackage.FieldBuildTimeStart: + return m.BuildTimeStart() + case dbpackage.FieldBuildTimeEnd: + return m.BuildTimeEnd() case dbpackage.FieldUpdated: return m.Updated() case dbpackage.FieldHash: @@ -821,10 +791,10 @@ func (m *DbPackageMutation) OldField(ctx context.Context, name string) (ent.Valu return m.OldVersion(ctx) case dbpackage.FieldRepoVersion: return m.OldRepoVersion(ctx) - case dbpackage.FieldBuildTime: - return m.OldBuildTime(ctx) - case dbpackage.FieldBuildDuration: - return m.OldBuildDuration(ctx) + case dbpackage.FieldBuildTimeStart: + return m.OldBuildTimeStart(ctx) + case dbpackage.FieldBuildTimeEnd: + return m.OldBuildTimeEnd(ctx) case dbpackage.FieldUpdated: return m.OldUpdated(ctx) case dbpackage.FieldHash: @@ -853,7 +823,7 @@ func (m *DbPackageMutation) SetField(name string, value ent.Value) error { m.SetPackages(v) return nil case dbpackage.FieldStatus: - v, ok := value.(int) + v, ok := value.(dbpackage.Status) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } @@ -867,7 +837,7 @@ func (m *DbPackageMutation) SetField(name string, value ent.Value) error { m.SetSkipReason(v) return nil case dbpackage.FieldRepository: - v, ok := value.(string) + v, ok := value.(dbpackage.Repository) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } @@ -894,19 +864,19 @@ func (m *DbPackageMutation) SetField(name string, value ent.Value) error { } m.SetRepoVersion(v) return nil - case dbpackage.FieldBuildTime: + case dbpackage.FieldBuildTimeStart: v, ok := value.(time.Time) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetBuildTime(v) + m.SetBuildTimeStart(v) return nil - case dbpackage.FieldBuildDuration: - v, ok := value.(uint64) + case dbpackage.FieldBuildTimeEnd: + v, ok := value.(time.Time) if !ok { return fmt.Errorf("unexpected type %T for field %s", value, name) } - m.SetBuildDuration(v) + m.SetBuildTimeEnd(v) return nil case dbpackage.FieldUpdated: v, ok := value.(time.Time) @@ -929,26 +899,13 @@ func (m *DbPackageMutation) SetField(name string, value ent.Value) error { // AddedFields returns all numeric fields that were incremented/decremented during // this mutation. func (m *DbPackageMutation) AddedFields() []string { - var fields []string - if m.addstatus != nil { - fields = append(fields, dbpackage.FieldStatus) - } - if m.addbuild_duration != nil { - fields = append(fields, dbpackage.FieldBuildDuration) - } - return fields + return nil } // AddedField returns the numeric value that was incremented/decremented on a field // with the given name. The second boolean return value indicates that this field // was not set, or was not defined in the schema. func (m *DbPackageMutation) AddedField(name string) (ent.Value, bool) { - switch name { - case dbpackage.FieldStatus: - return m.AddedStatus() - case dbpackage.FieldBuildDuration: - return m.AddedBuildDuration() - } return nil, false } @@ -957,20 +914,6 @@ func (m *DbPackageMutation) AddedField(name string) (ent.Value, bool) { // type. func (m *DbPackageMutation) AddField(name string, value ent.Value) error { switch name { - case dbpackage.FieldStatus: - v, ok := value.(int) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddStatus(v) - return nil - case dbpackage.FieldBuildDuration: - v, ok := value.(uint64) - if !ok { - return fmt.Errorf("unexpected type %T for field %s", value, name) - } - m.AddBuildDuration(v) - return nil } return fmt.Errorf("unknown DbPackage numeric field %s", name) } @@ -982,6 +925,9 @@ func (m *DbPackageMutation) ClearedFields() []string { if m.FieldCleared(dbpackage.FieldPackages) { fields = append(fields, dbpackage.FieldPackages) } + if m.FieldCleared(dbpackage.FieldStatus) { + fields = append(fields, dbpackage.FieldStatus) + } if m.FieldCleared(dbpackage.FieldSkipReason) { fields = append(fields, dbpackage.FieldSkipReason) } @@ -991,11 +937,11 @@ func (m *DbPackageMutation) ClearedFields() []string { if m.FieldCleared(dbpackage.FieldRepoVersion) { fields = append(fields, dbpackage.FieldRepoVersion) } - if m.FieldCleared(dbpackage.FieldBuildTime) { - fields = append(fields, dbpackage.FieldBuildTime) + if m.FieldCleared(dbpackage.FieldBuildTimeStart) { + fields = append(fields, dbpackage.FieldBuildTimeStart) } - if m.FieldCleared(dbpackage.FieldBuildDuration) { - fields = append(fields, dbpackage.FieldBuildDuration) + if m.FieldCleared(dbpackage.FieldBuildTimeEnd) { + fields = append(fields, dbpackage.FieldBuildTimeEnd) } if m.FieldCleared(dbpackage.FieldUpdated) { fields = append(fields, dbpackage.FieldUpdated) @@ -1020,6 +966,9 @@ func (m *DbPackageMutation) ClearField(name string) error { case dbpackage.FieldPackages: m.ClearPackages() return nil + case dbpackage.FieldStatus: + m.ClearStatus() + return nil case dbpackage.FieldSkipReason: m.ClearSkipReason() return nil @@ -1029,11 +978,11 @@ func (m *DbPackageMutation) ClearField(name string) error { case dbpackage.FieldRepoVersion: m.ClearRepoVersion() return nil - case dbpackage.FieldBuildTime: - m.ClearBuildTime() + case dbpackage.FieldBuildTimeStart: + m.ClearBuildTimeStart() return nil - case dbpackage.FieldBuildDuration: - m.ClearBuildDuration() + case dbpackage.FieldBuildTimeEnd: + m.ClearBuildTimeEnd() return nil case dbpackage.FieldUpdated: m.ClearUpdated() @@ -1073,11 +1022,11 @@ func (m *DbPackageMutation) ResetField(name string) error { case dbpackage.FieldRepoVersion: m.ResetRepoVersion() return nil - case dbpackage.FieldBuildTime: - m.ResetBuildTime() + case dbpackage.FieldBuildTimeStart: + m.ResetBuildTimeStart() return nil - case dbpackage.FieldBuildDuration: - m.ResetBuildDuration() + case dbpackage.FieldBuildTimeEnd: + m.ResetBuildTimeEnd() return nil case dbpackage.FieldUpdated: m.ResetUpdated() diff --git a/ent/runtime.go b/ent/runtime.go index 8a9b95a..7b93f4f 100644 --- a/ent/runtime.go +++ b/ent/runtime.go @@ -17,22 +17,8 @@ func init() { dbpackageDescPkgbase := dbpackageFields[0].Descriptor() // dbpackage.PkgbaseValidator is a validator for the "pkgbase" field. It is called by the builders before save. dbpackage.PkgbaseValidator = dbpackageDescPkgbase.Validators[0].(func(string) error) - // dbpackageDescStatus is the schema descriptor for status field. - dbpackageDescStatus := dbpackageFields[2].Descriptor() - // dbpackage.DefaultStatus holds the default value on creation for the status field. - dbpackage.DefaultStatus = dbpackageDescStatus.Default.(int) - // dbpackage.StatusValidator is a validator for the "status" field. It is called by the builders before save. - dbpackage.StatusValidator = dbpackageDescStatus.Validators[0].(func(int) error) - // dbpackageDescRepository is the schema descriptor for repository field. - dbpackageDescRepository := dbpackageFields[4].Descriptor() - // dbpackage.RepositoryValidator is a validator for the "repository" field. It is called by the builders before save. - dbpackage.RepositoryValidator = dbpackageDescRepository.Validators[0].(func(string) error) // dbpackageDescMarch is the schema descriptor for march field. dbpackageDescMarch := dbpackageFields[5].Descriptor() // dbpackage.MarchValidator is a validator for the "march" field. It is called by the builders before save. dbpackage.MarchValidator = dbpackageDescMarch.Validators[0].(func(string) error) - // dbpackageDescBuildDuration is the schema descriptor for build_duration field. - dbpackageDescBuildDuration := dbpackageFields[9].Descriptor() - // dbpackage.BuildDurationValidator is a validator for the "build_duration" field. It is called by the builders before save. - dbpackage.BuildDurationValidator = dbpackageDescBuildDuration.Validators[0].(func(uint64) error) } diff --git a/ent/schema/dbpackage.go b/ent/schema/dbpackage.go index c5e898e..ac94f2e 100644 --- a/ent/schema/dbpackage.go +++ b/ent/schema/dbpackage.go @@ -15,14 +15,14 @@ func (DbPackage) Fields() []ent.Field { return []ent.Field{ field.String("pkgbase").NotEmpty().Immutable().Unique(), field.Strings("packages").Optional(), - field.Int("status").Min(0).Default(6), + field.Enum("status").Values("skipped", "failed", "build", "queued", "building", "latest", "signing", "unknown").Default("unknown").Optional(), field.String("skip_reason").Optional(), - field.String("repository").NotEmpty(), + field.Enum("repository").Values("extra", "core", "community"), field.String("march").NotEmpty(), field.String("version").Optional(), field.String("repo_version").Optional(), - field.Time("build_time").Optional(), - field.Uint64("build_duration").Positive().Optional(), + field.Time("build_time_start").Optional(), + field.Time("build_time_end").Optional(), field.Time("updated").Optional(), field.String("hash").Optional(), } diff --git a/main.go b/main.go index ba1286b..5982f28 100644 --- a/main.go +++ b/main.go @@ -22,7 +22,6 @@ import ( "runtime" "strconv" "strings" - "sync" "syscall" "time" ) @@ -36,7 +35,6 @@ var ( rePkgFile = regexp.MustCompile(`^(.*)-.*-.*-(?:x86_64|any)\.pkg\.tar\.zst(?:\.sig)*$`) buildManager BuildManager db *ent.Client - dbLock sync.RWMutex journalLog = flag.Bool("journal", false, "Log to systemd journal instead of stdout") checkInterval = flag.Int("interval", 5, "How often svn2git should be checked in minutes (default: 5)") ) @@ -62,9 +60,7 @@ func (b *BuildManager) buildWorker(id int) { log.Infof("[%s/%s] Build starting", pkg.FullRepo, pkg.Pkgbase) dbPkg := getDbPackage(pkg) - dbLock.Lock() - dbPkg.Update().SetStatus(BUILDING).SetBuildTime(time.Now().UTC()).SetSkipReason("").SaveX(context.Background()) - dbLock.Unlock() + dbPkg = dbPkg.Update().SetStatus(dbpackage.StatusBuilding).SetBuildTimeStart(time.Now().UTC()).SetSkipReason("").SaveX(context.Background()) err := importKeys(pkg) if err != nil { @@ -124,10 +120,7 @@ func (b *BuildManager) buildWorker(id int) { check(os.MkdirAll(filepath.Join(conf.Basedir.Repo, "logs"), os.ModePerm)) check(os.WriteFile(filepath.Join(conf.Basedir.Repo, "logs", pkg.Pkgbase+".log"), out.Bytes(), os.ModePerm)) - dbPkg := getDbPackage(pkg) - dbLock.Lock() - dbPkg.Update().SetStatus(FAILED).SetBuildTime(time.Now()).SetBuildDuration(uint64(time.Now().Sub(start).Milliseconds())).SetHash(pkg.Hash).SaveX(context.Background()) - dbLock.Unlock() + dbPkg.Update().SetStatus(dbpackage.StatusFailed).SetBuildTimeEnd(time.Now()).SetHash(pkg.Hash).ExecX(context.Background()) // purge failed package from repo b.repoPurge[pkg.FullRepo] <- pkg @@ -180,10 +173,7 @@ func (b *BuildManager) buildWorker(id int) { check(os.Remove(filepath.Join(conf.Basedir.Repo, "logs", pkg.Pkgbase+".log"))) } - dbPkg = getDbPackage(pkg) - dbLock.Lock() - dbPkg.Update().SetStatus(BUILD).SetBuildDuration(uint64(time.Now().Sub(start).Milliseconds())).SaveX(context.Background()) - dbLock.Unlock() + dbPkg.Update().SetStatus(dbpackage.StatusBuild).SetBuildTimeEnd(time.Now().UTC()).ExecX(context.Background()) log.Infof("[%s/%s] Build successful (%s)", pkg.FullRepo, pkg.Pkgbase, time.Now().Sub(start)) b.repoAdd[pkg.FullRepo] <- pkg @@ -210,22 +200,16 @@ func (b *BuildManager) parseWorker() { pkg.Version = constructVersion(pkg.Srcinfo.Pkgver, pkg.Srcinfo.Pkgrel, pkg.Srcinfo.Epoch) dbPkg := getDbPackage(pkg) - dbLock.Lock() dbPkg = dbPkg.Update().SetUpdated(time.Now()).SetVersion(pkg.Version).SaveX(context.Background()) - dbLock.Unlock() skipping := false if contains(info.Arch, "any") { log.Debugf("Skipped %s: any-Package", info.Pkgbase) dbPkg.SkipReason = "arch = any" - dbPkg.Hash = pkg.Hash - dbPkg.Status = SKIPPED skipping = true } else if contains(conf.Blacklist.Packages, info.Pkgbase) { log.Debugf("Skipped %s: blacklisted package", info.Pkgbase) dbPkg.SkipReason = "blacklisted" - dbPkg.Hash = pkg.Hash - dbPkg.Status = SKIPPED skipping = true } else if contains(info.MakeDepends, "ghc") || contains(info.MakeDepends, "haskell-ghc") || contains(info.Depends, "ghc") || contains(info.Depends, "haskell-ghc") { // Skip Haskell packages for now, as we are facing linking problems with them, @@ -233,35 +217,25 @@ func (b *BuildManager) parseWorker() { // https://git.harting.dev/anonfunc/ALHP.GO/issues/11 log.Debugf("Skipped %s: haskell package", info.Pkgbase) dbPkg.SkipReason = "blacklisted (haskell)" - dbPkg.Hash = pkg.Hash - dbPkg.Status = SKIPPED skipping = true } else if isPkgFailed(pkg) { log.Debugf("Skipped %s: failed build", info.Pkgbase) dbPkg.SkipReason = "" - dbPkg.Hash = pkg.Hash - dbPkg.Status = FAILED skipping = true } - dbLock.Lock() - dbPkg = dbPkg.Update().SetStatus(dbPkg.Status).SetSkipReason(dbPkg.SkipReason).SetHash(dbPkg.Hash).SaveX(context.Background()) - dbLock.Unlock() if skipping { + dbPkg = dbPkg.Update().SetStatus(dbpackage.StatusSkipped).SetSkipReason(dbPkg.SkipReason).SetHash(pkg.Hash).SaveX(context.Background()) b.repoPurge[pkg.FullRepo] <- pkg b.parseWG.Done() continue } repoVer := getVersionFromRepo(pkg) - dbLock.Lock() dbPkg = dbPkg.Update().SetRepoVersion(repoVer).SaveX(context.Background()) - dbLock.Unlock() if repoVer != "" && alpm.VerCmp(repoVer, pkg.Version) > 0 { log.Debugf("Skipped %s: Version in repo higher than in PKGBUILD (%s < %s)", info.Pkgbase, pkg.Version, repoVer) - dbLock.Lock() - dbPkg = dbPkg.Update().SetStatus(LATEST).SetSkipReason("").SetHash(pkg.Hash).SaveX(context.Background()) - dbLock.Unlock() + dbPkg = dbPkg.Update().SetStatus(dbpackage.StatusLatest).SetSkipReason("").SetHash(pkg.Hash).SaveX(context.Background()) b.parseWG.Done() continue } @@ -273,38 +247,28 @@ func (b *BuildManager) parseWorker() { log.Warningf("[%s/%s] Problem solving dependencies: %v", pkg.FullRepo, info.Pkgbase, err) case MultiplePKGBUILDError: log.Debugf("Skipped %s: Multiple PKGBUILDs for dependency found: %v", info.Pkgbase, err) - dbLock.Lock() - dbPkg = dbPkg.Update().SetStatus(SKIPPED).SetSkipReason("multiple PKGBUILD for dep. found").SaveX(context.Background()) - dbLock.Unlock() + dbPkg = dbPkg.Update().SetStatus(dbpackage.StatusSkipped).SetSkipReason("multiple PKGBUILD for dep. found").SaveX(context.Background()) b.repoPurge[pkg.FullRepo] <- pkg b.parseWG.Done() continue case UnableToSatisfyError: log.Debugf("Skipped %s: unable to resolve dependencies: %v", info.Pkgbase, err) - dbLock.Lock() - dbPkg = dbPkg.Update().SetStatus(SKIPPED).SetSkipReason("unable to resolve dependencies").SaveX(context.Background()) - dbLock.Unlock() + dbPkg = dbPkg.Update().SetStatus(dbpackage.StatusSkipped).SetSkipReason("unable to resolve dependencies").SaveX(context.Background()) b.repoPurge[pkg.FullRepo] <- pkg b.parseWG.Done() continue } } - dbLock.Lock() - dbPkg = dbPkg.Update().SetStatus(QUEUED).SaveX(context.Background()) - dbLock.Unlock() + dbPkg = dbPkg.Update().SetStatus(dbpackage.StatusQueued).SaveX(context.Background()) if !isLatest { if local != nil { log.Infof("Delayed %s: not all dependencies are up to date (local: %s==%s, sync: %s==%s)", info.Pkgbase, local.Name(), local.Version(), local.Name(), syncVersion) - dbLock.Lock() - dbPkg = dbPkg.Update().SetSkipReason(fmt.Sprintf("waiting for %s==%s", local.Name(), syncVersion)).SaveX(context.Background()) - dbLock.Unlock() + dbPkg.Update().SetSkipReason(fmt.Sprintf("waiting for %s==%s", local.Name(), syncVersion)).ExecX(context.Background()) } else { log.Infof("Delayed %s: not all dependencies are up to date or resolvable", info.Pkgbase) - dbLock.Lock() - dbPkg = dbPkg.Update().SetSkipReason("waiting for mirror").SaveX(context.Background()) - dbLock.Unlock() + dbPkg.Update().SetSkipReason("waiting for mirror").ExecX(context.Background()) } // Purge delayed packages in case delay is caused by inconsistencies in svn2git. @@ -364,9 +328,7 @@ func (b *BuildManager) htmlWorker() { Name: repo, } - dbLock.RLock() - pkgs := db.DbPackage.Query().Order(ent.Asc(dbpackage.FieldPkgbase)).Where(dbpackage.MarchEQ(march), dbpackage.RepositoryEQ(repo)).AllX(context.Background()) - dbLock.RUnlock() + pkgs := db.DbPackage.Query().Order(ent.Asc(dbpackage.FieldPkgbase)).Where(dbpackage.MarchEQ(march), dbpackage.RepositoryEQ(dbpackage.Repository(repo))).AllX(context.Background()) for _, pkg := range pkgs { status, class := statusId2string(pkg.Status) @@ -380,21 +342,19 @@ func (b *BuildManager) htmlWorker() { Svn2GitVersion: pkg.Version, } - if pkg.BuildDuration > 0 { - duration, err := time.ParseDuration(strconv.Itoa(int(pkg.BuildDuration)) + "ms") - check(err) - addPkg.BuildDuration = duration + if !pkg.BuildTimeEnd.IsZero() && !pkg.BuildTimeStart.IsZero() { + addPkg.BuildDuration = pkg.BuildTimeEnd.Sub(pkg.BuildTimeStart) } - if !pkg.BuildTime.IsZero() { - addPkg.BuildDate = pkg.BuildTime.UTC().Format(time.RFC3339) + if !pkg.BuildTimeStart.IsZero() { + addPkg.BuildDate = pkg.BuildTimeStart.UTC().Format(time.RFC3339) } if !pkg.Updated.IsZero() { addPkg.Checked = pkg.Updated.UTC().Format(time.RFC3339) } - if pkg.Status == FAILED { + if pkg.Status == dbpackage.StatusFailed { addPkg.Log = fmt.Sprintf("logs/%s.log", pkg.Pkgbase) } @@ -432,9 +392,7 @@ func (b *BuildManager) repoWorker(repo string) { } dbPkg := getDbPackage(pkg) - dbLock.Lock() - dbPkg = dbPkg.Update().SetStatus(LATEST).SetSkipReason("").SetRepoVersion(pkg.Version).SetHash(pkg.Hash).SaveX(context.Background()) - dbLock.Unlock() + dbPkg = dbPkg.Update().SetStatus(dbpackage.StatusLatest).SetSkipReason("").SetRepoVersion(pkg.Version).SetHash(pkg.Hash).SaveX(context.Background()) cmd = exec.Command("paccache", "-rc", filepath.Join(conf.Basedir.Repo, pkg.FullRepo, "os", conf.Arch), @@ -472,9 +430,7 @@ func (b *BuildManager) repoWorker(repo string) { } dbPkg := getDbPackage(pkg) - dbLock.Lock() dbPkg = dbPkg.Update().SetRepoVersion("").SaveX(context.Background()) - dbLock.Unlock() for _, file := range pkg.PkgFiles { check(os.Remove(file)) @@ -553,9 +509,10 @@ func (b *BuildManager) syncWorker() { // compare b3sum of PKGBUILD file to hash in database, only proceed if hash differs // reduces the amount of PKGBUILDs that need to be parsed with makepkg, which is _really_ slow, significantly - dbLock.RLock() - dbPkg, dbErr := db.DbPackage.Query().Where(dbpackage.And(dbpackage.Pkgbase(sPkgbuild[len(sPkgbuild)-4]), dbpackage.Repository(strings.Split(repo, "-")[0]))).Only(context.Background()) - dbLock.RUnlock() + dbPkg, dbErr := db.DbPackage.Query().Where(dbpackage.And( + dbpackage.Pkgbase(sPkgbuild[len(sPkgbuild)-4]), + dbpackage.RepositoryEQ(dbpackage.Repository(strings.Split(repo, "-")[0]))), + ).Only(context.Background()) if dbErr != nil { switch dbErr.(type) { @@ -581,7 +538,7 @@ func (b *BuildManager) syncWorker() { b.parse <- &BuildPackage{ Pkgbuild: pkgbuild, Pkgbase: sPkgbuild[len(sPkgbuild)-4], - Repo: strings.Split(repo, "-")[0], + Repo: dbpackage.Repository(strings.Split(repo, "-")[0]), March: march, FullRepo: strings.Split(repo, "-")[0] + "-" + march, Hash: b3s, @@ -621,7 +578,7 @@ func main() { err = os.MkdirAll(conf.Basedir.Repo, os.ModePerm) check(err) - db, err = ent.Open("sqlite3", "file:"+conf.Basedir.Db+"?_fk=1&cache=shared") + db, err = ent.Open("sqlite3", "file:"+conf.Basedir.Db+"?_journal_mode=WAL&_fk=1&cache=shared&_sync=NORMAL") if err != nil { log.Panicf("Failed to open database %s: %v", conf.Basedir.Db, err) } diff --git a/utils.go b/utils.go index 9d59fe9..8dcfe91 100644 --- a/utils.go +++ b/utils.go @@ -24,13 +24,6 @@ import ( ) const ( - SKIPPED = iota - FAILED = iota - BUILD = iota - QUEUED = iota - BUILDING = iota - LATEST = iota - UNKNOWN = iota pacmanConf = "/usr/share/devtools/pacman-extra.conf" makepkgConf = "/usr/share/devtools/makepkg-x86_64.conf" logDir = "logs" @@ -42,7 +35,7 @@ type BuildPackage struct { Pkgbuild string Srcinfo *srcinfo.Srcinfo PkgFiles []string - Repo string + Repo dbpackage.Repository March string FullRepo string Version string @@ -129,19 +122,19 @@ func containsSubStr(str string, subList []string) bool { return false } -func statusId2string(status int) (string, string) { - switch status { - case SKIPPED: +func statusId2string(s dbpackage.Status) (string, string) { + switch s { + case dbpackage.StatusSkipped: return "SKIPPED", "table-" + conf.Status.Class.Skipped - case QUEUED: + case dbpackage.StatusQueued: return "QUEUED", "table-" + conf.Status.Class.Queued - case LATEST: + case dbpackage.StatusLatest: return "LATEST", "table-" + conf.Status.Class.Latest - case FAILED: + case dbpackage.StatusFailed: return "FAILED", "table-" + conf.Status.Class.Failed - case BUILD: + case dbpackage.StatusSigning: return "SIGNING", "table-" + conf.Status.Class.Signing - case BUILDING: + case dbpackage.StatusBuilding: return "BUILDING", "table-" + conf.Status.Class.Building default: return "UNKNOWN", "table-" + conf.Status.Class.Unknown @@ -420,8 +413,6 @@ func getDBPkgFromPkgfile(pkg string) (*ent.DbPackage, error) { fNameSplit := strings.Split(pkg, "-") pkgname := strings.Join(fNameSplit[0:len(fNameSplit)-3], "-") - dbLock.RLock() - defer dbLock.RUnlock() dbPkgs, err := db.DbPackage.Query().Where(dbpackage.PackagesNotNil()).All(context.Background()) if err != nil { switch err.(type) { @@ -463,11 +454,36 @@ func housekeeping() error { check(err) for _, pkgfile := range packages { + dbPkg, err := getDBPkgFromPkgfile(pkgfile) + pkg := &BuildPackage{ + Pkgbase: dbPkg.Pkgbase, + Repo: dbPkg.Repository, + FullRepo: dbPkg.Repository.String() + "-" + dbPkg.March, + } + // check if pkg signature is valid valid, err := isSignatureValid(pkgfile) check(err) if !valid { // TODO: purge pkg to trigger rebuild -> need srcinfo + if err != nil { + return err + } + + var upstream string + switch dbPkg.Repository { + case dbpackage.RepositoryCore, dbpackage.RepositoryExtra: + upstream = "upstream-core-extra" + case dbpackage.RepositoryCommunity: + upstream = "upstream-community" + } + + pkg.Srcinfo, err = genSRCINFO(filepath.Join(conf.Basedir.Upstream, upstream, dbPkg.Pkgbase, "repos", dbPkg.Repository.String()+"-"+conf.Arch, "PKGBUILD")) + if err != nil { + return err + } + + buildManager.repoPurge[pkg.FullRepo] <- pkg } // TODO: compare db-version with repo version @@ -509,12 +525,10 @@ func findPkgFiles(pkg *BuildPackage) { } func getDbPackage(pkg *BuildPackage) *ent.DbPackage { - dbLock.Lock() dbPkg, err := db.DbPackage.Query().Where(dbpackage.Pkgbase(pkg.Pkgbase)).Only(context.Background()) if err != nil { - dbPkg = db.DbPackage.Create().SetPkgbase(pkg.Pkgbase).SetMarch(pkg.March).SetPackages(packages2slice(pkg.Srcinfo.Packages)).SetRepository(pkg.Repo).SaveX(context.Background()) + dbPkg = db.DbPackage.Create().SetPkgbase(pkg.Pkgbase).SetMarch(pkg.March).SetPackages(packages2slice(pkg.Srcinfo.Packages)).SetRepository(dbpackage.Repository(pkg.Repo)).SaveX(context.Background()) } - dbLock.Unlock() return dbPkg } @@ -533,18 +547,18 @@ func syncMarchs() { for _, march := range conf.March { setupMakepkg(march) for _, repo := range conf.Repos { - tRepo := fmt.Sprintf("%s-%s", repo, march) - repos = append(repos, tRepo) - buildManager.repoAdd[tRepo] = make(chan *BuildPackage, conf.Build.Worker) - buildManager.repoPurge[tRepo] = make(chan *BuildPackage, 10000) - go buildManager.repoWorker(tRepo) + fRepo := fmt.Sprintf("%s-%s", repo, march) + repos = append(repos, fRepo) + buildManager.repoAdd[fRepo] = make(chan *BuildPackage, conf.Build.Worker) + buildManager.repoPurge[fRepo] = make(chan *BuildPackage, 10000) + go buildManager.repoWorker(fRepo) - if _, err := os.Stat(filepath.Join(filepath.Join(conf.Basedir.Repo, tRepo, "os", conf.Arch))); os.IsNotExist(err) { - log.Debugf("Creating path %s", filepath.Join(conf.Basedir.Repo, tRepo, "os", conf.Arch)) - check(os.MkdirAll(filepath.Join(conf.Basedir.Repo, tRepo, "os", conf.Arch), os.ModePerm)) + if _, err := os.Stat(filepath.Join(filepath.Join(conf.Basedir.Repo, fRepo, "os", conf.Arch))); os.IsNotExist(err) { + log.Debugf("Creating path %s", filepath.Join(conf.Basedir.Repo, fRepo, "os", conf.Arch)) + check(os.MkdirAll(filepath.Join(conf.Basedir.Repo, fRepo, "os", conf.Arch), os.ModePerm)) } - if i := find(eRepos, tRepo); i != -1 { + if i := find(eRepos, fRepo); i != -1 { eRepos = append(eRepos[:i], eRepos[i+1:]...) } }