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.

134 lines
2.7 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
3 years ago
  1. package Package
  2. func CreatePackage() error {
  3. return nil
  4. /*
  5. var (
  6. dirtyFiles map[int]string
  7. newFiles map[int]string
  8. pkgFiles map[int]string = make(map[int]string)
  9. choices string
  10. choicesSplit []string
  11. filePath string
  12. pkgName string
  13. pkgVersion string
  14. pkgNameVersion string
  15. tmpDir string
  16. index int
  17. ok bool
  18. e error
  19. )
  20. fmt.Println("Initialising package creation...")
  21. dirtyFiles, newFiles, e = Filesystem.GetFilesystemDiff()
  22. if e != nil {
  23. return e
  24. }
  25. fmt.Println("\nModified files...")
  26. for i, file := range dirtyFiles {
  27. fmt.Printf(
  28. "\t%d - %s\n",
  29. i,
  30. Color.Red(file),
  31. )
  32. }
  33. fmt.Println("\nNew files...")
  34. for i, file := range newFiles {
  35. fmt.Printf(
  36. "\t%d - %s\n",
  37. i,
  38. Color.Red(file),
  39. )
  40. }
  41. fmt.Println("Please select the files you would like to use to create the package. Leave empty for all.")
  42. choices = Helper.Input()
  43. if choices == "" {
  44. for i, file := range dirtyFiles {
  45. pkgFiles[i] = file
  46. }
  47. for i, file := range newFiles {
  48. pkgFiles[i] = file
  49. }
  50. } else {
  51. choicesSplit = strings.Split(choices, ",")
  52. for _, i := range choicesSplit {
  53. index, e = strconv.Atoi(i)
  54. if e != nil {
  55. // TODO: Handle this error
  56. panic(e)
  57. }
  58. filePath, ok = dirtyFiles[index]
  59. if !ok {
  60. filePath, ok = newFiles[index]
  61. if !ok {
  62. return errors.New("Invalid package selection")
  63. }
  64. }
  65. pkgFiles[index] = filePath
  66. }
  67. }
  68. fmt.Println("Please enter the package name:")
  69. pkgName = Helper.Input()
  70. if pkgName == "" {
  71. return errors.New("Invalid package name")
  72. }
  73. fmt.Println("Please enter the package version:")
  74. pkgVersion = Helper.Input()
  75. if pkgVersion == "" {
  76. return errors.New("Invalid package name")
  77. }
  78. fmt.Printf("Package Name: %s\n", pkgName)
  79. fmt.Printf("Package Version: %s\n", pkgVersion)
  80. fmt.Println("Files to be added")
  81. for i, file := range pkgFiles {
  82. fmt.Printf(
  83. "\t%d - %s\n",
  84. i,
  85. Color.Green(file),
  86. )
  87. }
  88. fmt.Println("Is this correct? [y/N]")
  89. if strings.ToLower(Helper.Input()) != "y" {
  90. return errors.New("User aborted")
  91. }
  92. pkgNameVersion = fmt.Sprintf("%s-%s", pkgName, pkgVersion)
  93. tmpDir, e = ioutil.TempDir("/tmp", pkgNameVersion)
  94. if e != nil {
  95. return e
  96. }
  97. defer os.RemoveAll(tmpDir)
  98. for _, file := range pkgFiles {
  99. Filesystem.CopyFile(file, filepath.Join(tmpDir, file))
  100. }
  101. // TODO: Add dependancy management here
  102. e = Archive.TarGzip(tmpDir, pkgNameVersion+".tar.gz")
  103. if e != nil {
  104. return e
  105. }
  106. fmt.Printf(
  107. Color.Green("\nSuccessfully created package %s\n"),
  108. pkgNameVersion,
  109. )
  110. return nil
  111. */
  112. }