| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // package service -- главный тип пакера
- package service
- import (
- "fmt"
- "log"
- "os"
- "p78git.ddns.net/svi/packer/internal/packer"
- "p78git.ddns.net/svi/packer/pkg/types"
- )
- // Service -- главный тип пакера
- type Service struct {
- packer types.IPacker
- }
- // NewService -- возвращает новый сервис
- func NewService() (*Service, error) {
- log.Printf("NewService()\n")
- sf := &Service{}
- var err error
- sf.packer, err = packer.NewPacker(sf)
- if err != nil {
- return nil, fmt.Errorf("NewService(): in create Packer, err=\n\t%w", err)
- }
- _ = types.IService(sf)
- return sf, nil
- }
- // Run -- запускает сервис в работу
- func (sf *Service) Run() error {
- log.Printf("Service.Run()\n")
- cmd := os.Getenv("PACKER_CMD")
- if cmd == "" {
- return fmt.Errorf("Service.Run(): env PACKER_CMD not set")
- }
- switch cmd {
- case "pack":
- err := sf.packer.Run()
- if err != nil {
- return fmt.Errorf("Service.Run(): in run IPacker, err=\n\t%w", err)
- }
- default:
- return fmt.Errorf("Service.Run(): unknown env PACKER_CMD(%q)", cmd)
- }
- return nil
- }
- // Packer -- возвращает упаковщик
- func (sf *Service) Packer() types.IPacker {
- return sf.packer
- }
|