gitosis_configen.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import os
  4. ADMIN_NAME = "admin-daemon"
  5. GITOSIS_CONFIG_PATH = "gitosis.conf"
  6. class Repository:
  7. def __init__(self):
  8. self.owner = ""
  9. self.collaborators = []
  10. self.name = ""
  11. def print_(self):
  12. string = ""
  13. string += "[group " + self.name + "]\n" #header
  14. members = [self.owner] + self.collaborators
  15. if self.owner != ADMIN_NAME:
  16. members+=[ADMIN_NAME] # add admin-daemon for possibility of serverside control
  17. members =" ".join(members) # make members a string before insertion
  18. string += "members = " + members + "\n"
  19. string += "writable = " + self.name + "\n\n"
  20. return string
  21. class Config:
  22. def __init__(self):
  23. adminrepo = Repository()
  24. adminrepo.owner = ADMIN_NAME
  25. adminrepo.name = "gitosis-admin"
  26. self.repositories = []
  27. self.repositories.append(adminrepo)
  28. def flush(self):
  29. # if os.path.isfile(GITOSIS_CONFIG_PATH):#trying to fix dublicating issue
  30. # os.remove(GITOSIS_CONFIG_PATH)
  31. with open(GITOSIS_CONFIG_PATH, mode="w") as file:
  32. file.write("[gitosis]\n\n") #header
  33. for r in self.repositories:
  34. file.write( r.print_() )
  35. def append(self, repo):
  36. self.repositories.append(repo)
  37. #a = Config()
  38. #r = Repository()
  39. #r.owner = "clarence"
  40. #r.collaborators = ["duke","michael","scott"]
  41. #r.name = "clarence_awesome_repo"
  42. #a.append(r)
  43. #a.flush()