main.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package main
  2. import (
  3. "encoding/json"
  4. "flag"
  5. "fmt"
  6. "os"
  7. "gitea.ckfah.com/go-script/file"
  8. "gitea.ckfah.com/go-script/logger"
  9. )
  10. var (
  11. rp string
  12. )
  13. type FilterS struct {
  14. Filter []string `json:"filter"`
  15. }
  16. func main() {
  17. flag.StringVar(&rp, "p", "", "")
  18. flag.Parse()
  19. if rp == "" {
  20. logger.FatalF("rp path is nil")
  21. }
  22. path, err := file.GetFilePath(".")
  23. if err != nil {
  24. logger.FatalF("rp path not found, err=%s", err)
  25. }
  26. filePath, err := file.GetFilePath("filter-config.json")
  27. if err != nil {
  28. logger.FatalF("filter-config.json not found, err=%s", err)
  29. }
  30. configF, err := os.Open(filePath)
  31. if err != nil {
  32. logger.FatalF("open file err,err=%s", err)
  33. }
  34. defer configF.Close()
  35. filter := new(FilterS)
  36. err = json.NewDecoder(configF).Decode(filter)
  37. if err != nil {
  38. logger.FatalF("json config decode err,err=%s", err)
  39. }
  40. if filter.Filter == nil || len(filter.Filter) == 0 {
  41. success()
  42. }
  43. err = file.ReplacePackageV2(path, filter.Filter, []string{"vendor", ".git", "bin", ".DS_Store", "LICENSE"})
  44. if err != nil {
  45. logger.FatalF("rp err,err=%s", err)
  46. }
  47. success()
  48. }
  49. func success() {
  50. fmt.Println("replace all success")
  51. os.Exit(-1)
  52. }