install.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. "io/ioutil"
  10. )
  11. //系统安装.
  12. func Install() {
  13. if len(os.Args) >= 2 && os.Args[1] == "install" {
  14. fmt.Println("Initializing...")
  15. err := orm.RunSyncdb("default", false, true)
  16. if err == nil {
  17. initialization()
  18. } else {
  19. panic(err.Error())
  20. os.Exit(1)
  21. }
  22. fmt.Println("Install Successfully!")
  23. os.Exit(0)
  24. }
  25. }
  26. //初始化数据
  27. func initialization() {
  28. o := orm.NewOrm()
  29. b,err := ioutil.ReadFile("./data/data.sql")
  30. if err != nil {
  31. panic(err.Error())
  32. os.Exit(1)
  33. }
  34. sql := string(b)
  35. _,err = o.Raw(sql).Exec()
  36. if err != nil {
  37. panic("SITE_NAME => " + err.Error())
  38. os.Exit(1)
  39. }
  40. member, err := models.NewMember().FindByFieldFirst("account", "admin")
  41. if err == orm.ErrNoRows {
  42. member.Account = "admin"
  43. member.Avatar = "/static/images/headimgurl.jpg"
  44. member.Password = "123456"
  45. member.AuthMethod = "local"
  46. member.Role = 0
  47. member.Email = "[email protected]"
  48. if err := member.Add(); err != nil {
  49. panic("Member.Add => " + err.Error())
  50. os.Exit(0)
  51. }
  52. book := models.NewBook()
  53. book.MemberId = member.MemberId
  54. book.BookName = "MinDoc演示项目"
  55. book.Status = 0
  56. book.Description = "这是一个MinDoc演示项目,该项目是由系统初始化时自动创建。"
  57. book.CommentCount = 0
  58. book.PrivatelyOwned = 0
  59. book.CommentStatus = "closed"
  60. book.Identify = "mindoc"
  61. book.DocCount = 0
  62. book.CommentCount = 0
  63. book.Version = time.Now().Unix()
  64. book.Cover = conf.GetDefaultCover()
  65. book.Editor = "markdown"
  66. book.Theme = "default"
  67. if err := book.Insert(); err != nil {
  68. panic("Book.Insert => " + err.Error())
  69. os.Exit(0)
  70. }
  71. }
  72. }