@@ -57,7 +57,34 @@ func Status(c client.Client, targets []string) error {
5757 return nil
5858}
5959
60- func Install (c client.Client ) error {
60+ func Install (c client.Client , targets []string ) error {
61+ // if targets, install all services
62+ if len (targets ) == 0 {
63+ err := installDataContainers (c )
64+ if err != nil {
65+ return err
66+ }
67+ err = installDefaultServices (c )
68+ if err != nil {
69+ return err
70+ }
71+ } else {
72+ // otherwise create and start the specific targets
73+ for _ , target := range targets {
74+ err := c .Create (target , false )
75+ if err != nil {
76+ return err
77+ }
78+ err = c .Start (target , false )
79+ if err != nil {
80+ return err
81+ }
82+ }
83+ }
84+ return nil
85+ }
86+
87+ func installDataContainers (c client.Client ) error {
6188 // data containers
6289 dataContainers := []string {
6390 "database-data" ,
@@ -79,6 +106,10 @@ func Install(c client.Client) error {
79106 // return err
80107 // }
81108 }
109+ return nil
110+ }
111+
112+ func installDefaultServices (c client.Client ) error {
82113 // start service containers
83114 targets := []string {
84115 "database=1" ,
@@ -108,10 +139,30 @@ func Install(c client.Client) error {
108139 return err
109140 }
110141 fmt .Println ("Done." )
111- return err
142+ return nil
143+ }
144+
145+ func Uninstall (c client.Client , targets []string ) error {
146+ // if targets, uninstall all services
147+ if len (targets ) == 0 {
148+ err := uninstallAllServices (c )
149+ if err != nil {
150+ return err
151+ }
152+
153+ } else {
154+ // uninstall the specific target
155+ for _ , target := range targets {
156+ err := c .Destroy (target )
157+ if err != nil {
158+ return err
159+ }
160+ }
161+ }
162+ return nil
112163}
113164
114- func Uninstall (c client.Client ) error {
165+ func uninstallAllServices (c client.Client ) error {
115166 targets := []string {
116167 "database=0" ,
117168 "cache=0" ,
0 commit comments