| 190 | } |
| 191 | |
| 192 | func (c *Celer) SetPkgCacheDir(dir string) error { |
| 193 | // Check dir empty and exist. |
| 194 | if strings.TrimSpace(dir) == "" { |
| 195 | return errors.ErrPkgCacheDirEmpty |
| 196 | } |
| 197 | if !fileio.PathExists(dir) { |
| 198 | return errors.ErrPkgCacheDirNotExist |
| 199 | } |
| 200 | |
| 201 | if err := c.readOrCreate(); err != nil { |
| 202 | return err |
| 203 | } |
| 204 | |
| 205 | // Update package cache dir. |
| 206 | if c.configData.PkgCacheConfig == nil { |
| 207 | c.configData.PkgCacheConfig = NewPkgCacheConfig(c, dir, false) |
| 208 | } |
| 209 | c.configData.PkgCacheConfig.Dir = dir |
| 210 | |
| 211 | // Rebuild internal handlers if dir is already configured. |
| 212 | if err := c.configData.PkgCacheConfig.Refresh(); err != nil { |
| 213 | return err |
| 214 | } |
| 215 | if err := c.save(); err != nil { |
| 216 | return err |
| 217 | } |
| 218 | |
| 219 | return nil |
| 220 | } |
| 221 | |
| 222 | func (c *Celer) SetPkgCacheWritable(writable bool) error { |
| 223 | if err := c.readOrCreate(); err != nil { |