service.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // package Сервис -- главный тип пакера
  2. package service
  3. import (
  4. "fmt"
  5. "log"
  6. "os"
  7. "gitp78su.ipnodns.ru/svi/packer/internal/packer"
  8. )
  9. // Сервис -- главный тип пакера
  10. type Сервис struct {
  11. пакер *packer.Пакер
  12. }
  13. // НовСервис -- возвращает новый сервис
  14. func НовСервис() (*Сервис, error) {
  15. log.Printf("НовСервис()\n")
  16. сам := &Сервис{}
  17. сам.пакер = packer.НовПакер()
  18. return сам, nil
  19. }
  20. // Пуск -- запускает сервис в работу
  21. func (sf *Сервис) Пуск() error {
  22. log.Printf("Сервис.Пуск()\n")
  23. cmd := os.Getenv("PACKER_CMD")
  24. if cmd == "" {
  25. return fmt.Errorf("Сервис.Пуск(): env PACKER_CMD not set")
  26. }
  27. switch cmd {
  28. case "pack":
  29. err := sf.пакер.Пуск()
  30. if err != nil {
  31. return fmt.Errorf("Сервис.Пуск(): in Пуск IPacker, err=\n\t%w", err)
  32. }
  33. default:
  34. return fmt.Errorf("Сервис.Пуск(): unknown env PACKER_CMD(%q)", cmd)
  35. }
  36. return nil
  37. }