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.

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