88 "path/filepath"
99 "sync"
1010
11- "github.com/docker/docker/pkg/ioutils "
11+ "github.com/docker/buildx/util/confutil "
1212 "github.com/pkg/errors"
1313 "golang.org/x/sync/errgroup"
1414)
@@ -42,26 +42,26 @@ type StateGroup struct {
4242}
4343
4444type LocalState struct {
45- root string
45+ cfg * confutil. Config
4646}
4747
48- func New (root string ) (* LocalState , error ) {
49- if root == "" {
50- return nil , errors .Errorf ("root dir empty" )
48+ func New (cfg * confutil. Config ) (* LocalState , error ) {
49+ if cfg . Dir () == "" {
50+ return nil , errors .Errorf ("config dir empty" )
5151 }
52- if err := os .MkdirAll (filepath . Join ( root , refsDir ) , 0700 ); err != nil {
52+ if err := cfg .MkdirAll (refsDir , 0700 ); err != nil {
5353 return nil , err
5454 }
5555 return & LocalState {
56- root : root ,
56+ cfg : cfg ,
5757 }, nil
5858}
5959
6060func (ls * LocalState ) ReadRef (builderName , nodeName , id string ) (* State , error ) {
6161 if err := ls .validate (builderName , nodeName , id ); err != nil {
6262 return nil , err
6363 }
64- dt , err := os .ReadFile (filepath .Join (ls .root , refsDir , builderName , nodeName , id ))
64+ dt , err := os .ReadFile (filepath .Join (ls .cfg . Dir () , refsDir , builderName , nodeName , id ))
6565 if err != nil {
6666 return nil , err
6767 }
@@ -76,19 +76,19 @@ func (ls *LocalState) SaveRef(builderName, nodeName, id string, st State) error
7676 if err := ls .validate (builderName , nodeName , id ); err != nil {
7777 return err
7878 }
79- refDir := filepath .Join (ls . root , refsDir , builderName , nodeName )
80- if err := os .MkdirAll (refDir , 0700 ); err != nil {
79+ refDir := filepath .Join (refsDir , builderName , nodeName )
80+ if err := ls . cfg .MkdirAll (refDir , 0700 ); err != nil {
8181 return err
8282 }
8383 dt , err := json .Marshal (st )
8484 if err != nil {
8585 return err
8686 }
87- return ioutils . AtomicWriteFile (filepath .Join (refDir , id ), dt , 0600 )
87+ return ls . cfg . AtomicWriteFile (filepath .Join (refDir , id ), dt , 0644 )
8888}
8989
9090func (ls * LocalState ) ReadGroup (id string ) (* StateGroup , error ) {
91- dt , err := os .ReadFile (filepath .Join (ls .root , refsDir , groupDir , id ))
91+ dt , err := os .ReadFile (filepath .Join (ls .cfg . Dir () , refsDir , groupDir , id ))
9292 if err != nil {
9393 return nil , err
9494 }
@@ -100,23 +100,23 @@ func (ls *LocalState) ReadGroup(id string) (*StateGroup, error) {
100100}
101101
102102func (ls * LocalState ) SaveGroup (id string , stg StateGroup ) error {
103- refDir := filepath .Join (ls . root , refsDir , groupDir )
104- if err := os .MkdirAll (refDir , 0700 ); err != nil {
103+ refDir := filepath .Join (refsDir , groupDir )
104+ if err := ls . cfg .MkdirAll (refDir , 0700 ); err != nil {
105105 return err
106106 }
107107 dt , err := json .Marshal (stg )
108108 if err != nil {
109109 return err
110110 }
111- return ioutils .AtomicWriteFile (filepath .Join (refDir , id ), dt , 0600 )
111+ return ls . cfg .AtomicWriteFile (filepath .Join (refDir , id ), dt , 0600 )
112112}
113113
114114func (ls * LocalState ) RemoveBuilder (builderName string ) error {
115115 if builderName == "" {
116116 return errors .Errorf ("builder name empty" )
117117 }
118118
119- dir := filepath .Join (ls .root , refsDir , builderName )
119+ dir := filepath .Join (ls .cfg . Dir () , refsDir , builderName )
120120 if _ , err := os .Lstat (dir ); err != nil {
121121 if ! os .IsNotExist (err ) {
122122 return err
@@ -147,7 +147,7 @@ func (ls *LocalState) RemoveBuilderNode(builderName string, nodeName string) err
147147 return errors .Errorf ("node name empty" )
148148 }
149149
150- dir := filepath .Join (ls .root , refsDir , builderName , nodeName )
150+ dir := filepath .Join (ls .cfg . Dir () , refsDir , builderName , nodeName )
151151 if _ , err := os .Lstat (dir ); err != nil {
152152 if ! os .IsNotExist (err ) {
153153 return err
@@ -208,7 +208,7 @@ func (ls *LocalState) removeGroup(id string) error {
208208 if id == "" {
209209 return errors .Errorf ("group ref empty" )
210210 }
211- f := filepath .Join (ls .root , refsDir , groupDir , id )
211+ f := filepath .Join (ls .cfg . Dir () , refsDir , groupDir , id )
212212 if _ , err := os .Lstat (f ); err != nil {
213213 if ! os .IsNotExist (err ) {
214214 return err
0 commit comments