github.com/mg98/scriptup@v0.1.0/pkg/scriptup/status.go (about) 1 package scriptup 2 3 import ( 4 "fmt" 5 "github.com/mg98/scriptup/pkg/scriptup/migration" 6 "github.com/mg98/scriptup/pkg/scriptup/migration_state" 7 ) 8 9 func Status(cfg *Config) error { 10 s, err := cfg.InitMigrationState() 11 if err != nil { 12 return err 13 } 14 ms, err := getUnappliedMigrations(s) 15 if err != nil { 16 return err 17 } 18 for _, m := range ms { 19 fmt.Println(m.Name) 20 } 21 22 return nil 23 } 24 25 // getUnappliedMigrations returns all migrations from the migration directory 26 // which are dated after the latest migration in the storage. 27 func getUnappliedMigrations(state *migration_state.MigrationState) ([]*migration.Migration, error) { 28 latestM, err := state.Latest() 29 if err != nil { 30 return nil, err 31 } 32 ms, err := state.Files() 33 if err != nil { 34 return nil, err 35 } 36 var res []*migration.Migration 37 for _, m := range ms { 38 if latestM == nil || m.Date.After(latestM.Date) { 39 res = append(res, m) 40 } 41 } 42 return res, nil 43 }