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.

74 lines
974 B

3 years ago
  1. package Filesystem
  2. import (
  3. "regexp"
  4. "PackageManager/Variables"
  5. )
  6. var (
  7. PruneRegex []*regexp.Regexp
  8. IgnoreRegex []*regexp.Regexp
  9. )
  10. func init() {
  11. var e error
  12. e = InitPruneRegex()
  13. if e != nil {
  14. panic(e)
  15. }
  16. e = InitIgnoreRegex()
  17. if e != nil {
  18. panic(e)
  19. }
  20. }
  21. func InitPruneRegex() error {
  22. var (
  23. r *regexp.Regexp
  24. s string
  25. e error
  26. )
  27. for _, s = range Variables.PruneRegexPaths {
  28. r, e = regexp.Compile(s)
  29. if e != nil {
  30. return e
  31. }
  32. PruneRegex = append(PruneRegex, r)
  33. }
  34. return nil
  35. }
  36. func InitIgnoreRegex() error {
  37. var (
  38. r *regexp.Regexp
  39. s string
  40. e error
  41. )
  42. for _, s = range Variables.IgnoreRegexPaths {
  43. r, e = regexp.Compile(s)
  44. if e != nil {
  45. return e
  46. }
  47. IgnoreRegex = append(IgnoreRegex, r)
  48. }
  49. return nil
  50. }
  51. func matchAny(p string, a []*regexp.Regexp) bool {
  52. var (
  53. regex *regexp.Regexp
  54. match bool
  55. )
  56. for _, regex = range a {
  57. match = regex.MatchString(p)
  58. if match == true {
  59. return true
  60. }
  61. }
  62. return false
  63. }