PackageManager just because
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

164 lines
3.2 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "os"
  6. "PackageManager/Client/Database"
  7. "PackageManager/Client/Filesystem"
  8. "PackageManager/Color"
  9. "PackageManager/Helper"
  10. "PackageManager/Variables"
  11. )
  12. func HelpMsg() {
  13. var helpMsg string
  14. helpMsg = `Usage of %s:
  15. -Af | -add-files
  16. Add files
  17. -Cf | -commit
  18. Add files
  19. -Fd | -fs-diff
  20. Filesystem diff
  21. -Rf | -reset
  22. Reset added files
  23. -V | -verbose
  24. Verbose output
  25. `
  26. helpMsg = fmt.Sprintf(helpMsg, os.Args[0])
  27. fmt.Println(helpMsg)
  28. }
  29. func main() {
  30. var (
  31. getFilesystemDiffFlag bool
  32. getFilesystemDiffFlagLong bool
  33. addFileDiffFlag bool
  34. addFileDiffFlagLong bool
  35. commitAddedFilesFlag bool
  36. commitAddedFilesFlagLong bool
  37. resetAddedFilesFlag bool
  38. resetAddedFilesFlagLong bool
  39. verboseOutputFlag bool
  40. verboseOutputFlagLong bool
  41. e error
  42. )
  43. flag.Usage = HelpMsg
  44. e = Helper.CheckRoot()
  45. if e != nil {
  46. fmt.Println(Color.Fatal(e))
  47. return
  48. }
  49. e = Database.InitDB()
  50. if e != nil {
  51. panic(e)
  52. }
  53. // TODO: Rework usage function
  54. // Initialise flags
  55. flag.BoolVar(&verboseOutputFlag, "V", false, "Verbose output")
  56. flag.BoolVar(&verboseOutputFlagLong, "verbose", false, "Verbose output")
  57. flag.BoolVar(&getFilesystemDiffFlag, "Fd", false, "Filesystem diff")
  58. flag.BoolVar(&getFilesystemDiffFlagLong, "fs-diff", false, "Filesystem diff")
  59. flag.BoolVar(&addFileDiffFlag, "Af", false, "Add files")
  60. flag.BoolVar(&addFileDiffFlagLong, "add-files", false, "Add files")
  61. flag.BoolVar(&commitAddedFilesFlag, "Cf", false, "Commit files")
  62. flag.BoolVar(&commitAddedFilesFlagLong, "commit", false, "Commit files")
  63. flag.BoolVar(&resetAddedFilesFlag, "Rf", false, "Reset added files")
  64. flag.BoolVar(&resetAddedFilesFlagLong, "reset", false, "Reset added files")
  65. flag.Parse()
  66. Variables.VerboseOutput = verboseOutputFlag || verboseOutputFlagLong
  67. if getFilesystemDiffFlag || getFilesystemDiffFlagLong {
  68. var rootPath string = Variables.RootDir
  69. if len(flag.Args()) > 1 {
  70. // TODO: Fix this msg
  71. fmt.Println(Color.Fatal("Option takes one optional argument"))
  72. flag.Usage()
  73. return
  74. }
  75. if len(flag.Args()) == 1 {
  76. rootPath = flag.Arg(0)
  77. }
  78. e = Filesystem.ShowFilesystemDiff(rootPath)
  79. if e != nil {
  80. panic(e)
  81. }
  82. return
  83. }
  84. if addFileDiffFlag || addFileDiffFlagLong {
  85. if len(flag.Args()) > 1 && len(flag.Args()) < 1 {
  86. fmt.Println(Color.Fatal("Must supply one argument"))
  87. flag.Usage()
  88. return
  89. }
  90. e = Filesystem.PickFiles(flag.Arg(0))
  91. if e != nil {
  92. panic(e)
  93. }
  94. return
  95. }
  96. if commitAddedFilesFlag || commitAddedFilesFlagLong {
  97. e = Filesystem.CommitFiles()
  98. if e != nil {
  99. panic(e)
  100. }
  101. return
  102. }
  103. if resetAddedFilesFlag || resetAddedFilesFlagLong {
  104. e = Filesystem.ResetAllPickedFiles()
  105. if e != nil {
  106. panic(e)
  107. }
  108. return
  109. }
  110. /*
  111. if createPackageFlag || createPackageFlagLong {
  112. e = Package.CreatePackage()
  113. if e != nil {
  114. panic(e)
  115. }
  116. return
  117. }
  118. if installLocalPackageFlag || installLocalPackageFlagLong {
  119. e = Package.InstallPackage(flag.Args())
  120. if e != nil {
  121. panic(e)
  122. }
  123. return
  124. }
  125. */
  126. flag.Usage()
  127. fmt.Println(Color.Fatal("Nothing to do"))
  128. //e := Archive.TarGzip("/tmp/test", "/tmp/test.tar.gz")
  129. //e := Archive.UntarGzip("/tmp/test.tar.gz", "/tmp/test")
  130. //fmt.Println(e)
  131. }