install.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. if len(os.Args) >= 2 && os.Args[1] == "install" {
  13. fmt.Println("Initializing...")
  14. err := orm.RunSyncdb("default", false, true)
  15. if err == nil {
  16. initialization()
  17. } else {
  18. panic(err.Error())
  19. os.Exit(1)
  20. }
  21. fmt.Println("Install Successfully!")
  22. os.Exit(0)
  23. }
  24. }
  25. //初始化数据
  26. func initialization() {
  27. o := orm.NewOrm()
  28. _, err := o.Raw(`INSERT INTO md_options (option_title, option_name, option_value) SELECT '是否启用注册','ENABLED_REGISTER','false' WHERE NOT exists(SELECT * FROM md_options WHERE option_name = 'ENABLED_REGISTER');`).Exec()
  29. if err != nil {
  30. panic("ENABLED_REGISTER => " + err.Error())
  31. os.Exit(1)
  32. }
  33. _, err = o.Raw(`INSERT INTO md_options (option_title, option_name, option_value) SELECT '是否启用验证码','ENABLED_CAPTCHA','false' WHERE NOT exists(SELECT * FROM md_options WHERE option_name = 'ENABLED_CAPTCHA');`).Exec()
  34. if err != nil {
  35. panic("ENABLED_CAPTCHA => " + err.Error())
  36. os.Exit(1)
  37. }
  38. _, err = o.Raw(`INSERT INTO md_options (option_title, option_name, option_value) SELECT '启用匿名访问','ENABLE_ANONYMOUS','true' WHERE NOT exists(SELECT * FROM md_options WHERE option_name = 'ENABLE_ANONYMOUS');`).Exec()
  39. if err != nil {
  40. panic("ENABLE_ANONYMOUS => " + err.Error())
  41. os.Exit(1)
  42. }
  43. _, err = o.Raw(`INSERT INTO md_options (option_title, option_name, option_value) SELECT '站点名称','SITE_NAME','MinDoc' WHERE NOT exists(SELECT * FROM md_options WHERE option_name = 'SITE_NAME');`).Exec()
  44. if err != nil {
  45. panic("SITE_NAME => " + err.Error())
  46. os.Exit(1)
  47. }
  48. member, err := models.NewMember().FindByFieldFirst("account", "admin")
  49. if err == orm.ErrNoRows {
  50. member.Account = "admin"
  51. member.Avatar = "/static/images/headimgurl.jpg"
  52. member.Password = "123456"
  53. member.AuthMethod = "local"
  54. member.Role = 0
  55. member.Email = "[email protected]"
  56. if err := member.Add(); err != nil {
  57. panic("Member.Add => " + err.Error())
  58. os.Exit(0)
  59. }
  60. book := models.NewBook()
  61. book.MemberId = member.MemberId
  62. book.BookName = "MinDoc演示项目"
  63. book.Status = 0
  64. book.Description = "这是一个MinDoc演示项目,该项目是由系统初始化时自动创建。"
  65. book.CommentCount = 0
  66. book.PrivatelyOwned = 0
  67. book.CommentStatus = "closed"
  68. book.Identify = "mindoc"
  69. book.DocCount = 0
  70. book.CommentCount = 0
  71. book.Version = time.Now().Unix()
  72. book.Cover = conf.GetDefaultCover()
  73. book.Editor = "markdown"
  74. book.Theme = "default"
  75. if err := book.Insert(); err != nil {
  76. panic("Book.Insert => " + err.Error())
  77. os.Exit(0)
  78. }
  79. }
  80. }