@@ -145,20 +145,43 @@ func (c Ccoco) Init(opts InitOptions) error {
145145 return nil
146146}
147147
148- func (c Ccoco ) IsInitialized () bool {
149- if _ , err := os .Stat (filepath .Join (c .gitClient .RootPathFromCwd , c .directories .Root )); os .IsNotExist (err ) {
150- return false
148+ func IsInitialized (root , configs , preflights , configFileName string ) (* bool , error ) {
149+ gitClient , err := NewGitClient ("." )
150+ if err != nil {
151+ return nil , err
152+ }
153+ initialized := false
154+ if _ , err := os .Stat (filepath .Join (gitClient .RootPathFromCwd , root )); os .IsNotExist (err ) {
155+ return & initialized , nil
156+ }
157+ if _ , err := os .Stat (filepath .Join (gitClient .RootPathFromCwd , configs )); os .IsNotExist (err ) {
158+ return & initialized , nil
159+ }
160+ if _ , err := os .Stat (filepath .Join (gitClient .RootPathFromCwd , preflights )); os .IsNotExist (err ) {
161+ return & initialized , nil
162+ }
163+ if _ , err := os .Stat (filepath .Join (gitClient .RootPathFromCwd , configFileName )); os .IsNotExist (err ) {
164+ return & initialized , nil
151165 }
152- if _ , err := os .Stat (filepath .Join (c .gitClient .RootPathFromCwd , c .directories .Configs )); os .IsNotExist (err ) {
153- return false
166+
167+ initialized = true
168+ return & initialized , nil
169+ }
170+
171+ func (c * Ccoco ) Load (gitClient * Git , directories * Directories , configFile * File ) error {
172+ if c == nil {
173+ return errors .New ("ccoco is nil" )
174+ }
175+ if gitClient != nil {
176+ c .gitClient = gitClient
154177 }
155- if _ , err := os . Stat ( filepath . Join ( c . gitClient . RootPathFromCwd , c . directories . Preflights )); os . IsNotExist ( err ) {
156- return false
178+ if directories != nil {
179+ c . directories = directories
157180 }
158- if _ , err := os . Stat ( filepath . Join ( c . gitClient . RootPathFromCwd , c . configFile . Name )); os . IsNotExist ( err ) {
159- return false
181+ if configFile != nil {
182+ c . configFile = configFile
160183 }
161- return true
184+ return nil
162185}
163186
164187func (c Ccoco ) AddToGitIgnore () error {
@@ -266,7 +289,11 @@ type RunOptions struct {
266289
267290func (c Ccoco ) Run (opts RunOptions ) error {
268291 // Check if configs are initialized
269- if ! c .IsInitialized () {
292+ initialized , err := IsInitialized (c .directories .Root , c .directories .Configs , c .directories .Preflights , c .configFile .Name )
293+ if err != nil {
294+ return err
295+ }
296+ if ! * initialized {
270297 return errors .New ("ccoco is not initialized. run ccoco init first" )
271298 }
272299 // Get current branch from options
@@ -343,9 +370,14 @@ func (c Ccoco) Run(opts RunOptions) error {
343370
344371func (c Ccoco ) ChangeConfigFiles (currentBranch string ) error {
345372 // Check if configs are initialized
346- if ! c .IsInitialized () {
373+ initialized , err := IsInitialized (c .directories .Root , c .directories .Configs , c .directories .Preflights , c .configFile .Name )
374+ if err != nil {
375+ return err
376+ }
377+ if ! * initialized {
347378 return errors .New ("ccoco is not initialized. run ccoco init first" )
348379 }
380+
349381 for _ , file := range c .configFile .Content .Files {
350382 // Encode file name to base58
351383 encodedFile := file
@@ -390,7 +422,11 @@ func (c Ccoco) ChangeConfigFiles(currentBranch string) error {
390422
391423func (c Ccoco ) GenerateConfigs () error {
392424 // Check if configs are initialized
393- if ! c .IsInitialized () {
425+ initialized , err := IsInitialized (c .directories .Root , c .directories .Configs , c .directories .Preflights , c .configFile .Name )
426+ if err != nil {
427+ return err
428+ }
429+ if ! * initialized {
394430 return errors .New ("ccoco is not initialized. run ccoco init first" )
395431 }
396432
@@ -449,7 +485,11 @@ func (c Ccoco) GenerateConfigs() error {
449485
450486func (c Ccoco ) AddToFiles (files []string ) error {
451487 // Check if configs are initialized
452- if ! c .IsInitialized () {
488+ initialized , err := IsInitialized (c .directories .Root , c .directories .Configs , c .directories .Preflights , c .configFile .Name )
489+ if err != nil {
490+ return err
491+ }
492+ if ! * initialized {
453493 return errors .New ("ccoco is not initialized. run ccoco init first" )
454494 }
455495
@@ -482,7 +522,11 @@ func (c Ccoco) AddToFiles(files []string) error {
482522
483523func (c Ccoco ) RemoveFromFiles (files []string ) error {
484524 // Check if configs are initialized
485- if ! c .IsInitialized () {
525+ initialized , err := IsInitialized (c .directories .Root , c .directories .Configs , c .directories .Preflights , c .configFile .Name )
526+ if err != nil {
527+ return err
528+ }
529+ if ! * initialized {
486530 return errors .New ("ccoco is not initialized. run ccoco init first" )
487531 }
488532
0 commit comments