install.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package commands
  2. import (
  3. "fmt"
  4. "os"
  5. "time"
  6. "github.com/astaxie/beego/orm"
  7. "github.com/lifei6671/godoc/conf"
  8. "github.com/lifei6671/godoc/models"
  9. )
  10. //系统安装.
  11. func Install() {
  12. fmt.Println("Initializing...")
  13. err := orm.RunSyncdb("default", false, true)
  14. if err == nil {
  15. initialization()
  16. } else {
  17. panic(err.Error())
  18. os.Exit(1)
  19. }
  20. fmt.Println("Install Successfully!")
  21. os.Exit(0)
  22. }
  23. func Version() {
  24. if len(os.Args) >= 2 && os.Args[1] == "version" {
  25. fmt.Println(conf.VERSION)
  26. os.Exit(0)
  27. }
  28. }
  29. //初始化数据
  30. func initialization() {
  31. err := models.NewOption().Init()
  32. if err != nil {
  33. panic(err.Error())
  34. os.Exit(1)
  35. }
  36. member, err := models.NewMember().FindByFieldFirst("account", "admin")
  37. if err == orm.ErrNoRows {
  38. member.Account = "admin"
  39. member.Avatar = "/static/images/headimgurl.jpg"
  40. member.Password = "123456"
  41. member.AuthMethod = "local"
  42. member.Role = 0
  43. member.Email = "[email protected]"
  44. if err := member.Add(); err != nil {
  45. panic("Member.Add => " + err.Error())
  46. os.Exit(0)
  47. }
  48. book := models.NewBook()
  49. book.MemberId = member.MemberId
  50. book.BookName = "MinDoc演示项目"
  51. book.Status = 0
  52. book.Description = "这是一个MinDoc演示项目,该项目是由系统初始化时自动创建。"
  53. book.CommentCount = 0
  54. book.PrivatelyOwned = 0
  55. book.CommentStatus = "closed"
  56. book.Identify = "mindoc"
  57. book.DocCount = 0
  58. book.CommentCount = 0
  59. book.Version = time.Now().Unix()
  60. book.Cover = conf.GetDefaultCover()
  61. book.Editor = "markdown"
  62. book.Theme = "default"
  63. if err := book.Insert(); err != nil {
  64. panic("Book.Insert => " + err.Error())
  65. os.Exit(0)
  66. }
  67. }
  68. }