MCPcopy Index your code
hub / github.com/bytesizedhosting/bcd / Install

Method Install

plugins/plexrequests/plexrequests.go:35–88  ·  view source on GitHub ↗
(opts *PlexrequestsOpts)

Source from the content-addressed store, hash-verified

33}
34
35func (self *Plexrequests) Install(opts *PlexrequestsOpts) error {
36 var err error
37 err = opts.SetDefault(self.Name)
38
39 if err != nil {
40 return err
41 }
42
43 log.WithFields(log.Fields{
44 "plugin": self.Name,
45 "datafolder": opts.DataFolder,
46 "configfolder": opts.ConfigFolder,
47 }).Debug("Plexrequests options")
48
49 err = os.MkdirAll(opts.ConfigFolder, 0755)
50 if err != nil {
51 return err
52 }
53
54 log.Debugln("Pulling docker image", self.imageName)
55 err = self.DockerClient.PullImage(docker.PullImageOptions{Repository: self.imageName}, docker.AuthConfiguration{})
56 if err != nil {
57 return err
58 }
59
60 portBindings := map[docker.Port][]docker.PortBinding{
61 "3000/tcp": []docker.PortBinding{docker.PortBinding{HostPort: opts.WebPort}},
62 }
63
64 hostConfig := docker.HostConfig{
65 PortBindings: portBindings,
66 Binds: plugins.DefaultBindings(opts),
67 }
68
69 conf := docker.Config{Env: []string{"PUID=" + opts.User.Uid}, Image: self.imageName}
70
71 log.Debugln("Creating docker container")
72 c, err := self.DockerClient.CreateContainer(docker.CreateContainerOptions{Config: &conf, HostConfig: &hostConfig, Name: "bytesized_plexrequests_" + opts.WebPort})
73
74 if err != nil {
75 return err
76 }
77
78 log.Debugln("Starting docker container")
79
80 err = self.DockerClient.StartContainer(c.ID, nil)
81 if err != nil {
82 return err
83 }
84
85 opts.ContainerId = c.ID
86
87 return nil
88}

Callers

nothing calls this directly

Calls 1

SetDefaultMethod · 0.80

Tested by

no test coverage detected