Skip to content

Commit

Permalink
Fix reading config directory (#193)
Browse files Browse the repository at this point in the history
  • Loading branch information
majd committed May 29, 2023
1 parent cfc4a07 commit 6a7adab
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 45 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
## Changelog

### Version [2.1.1](https://github.com/majd/ipatool/releases/tag/v2.1.1)

- Fixed an issue when creating the config directory for the tool.

### Version [2.1.0](https://github.com/majd/ipatool/releases/tag/v2.1.0)

- Implemented `Lookup` API.
Expand Down
12 changes: 6 additions & 6 deletions cmd/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,16 +131,16 @@ func initWithCommand(cmd *cobra.Command) {
Machine: dependencies.Machine,
})

util.Must("", createConfigDirectory())
util.Must("", createConfigDirectory(dependencies.OS, dependencies.Machine))
}

// createConfigDirectory creates the configuration directory for the CLI tool, if needed.
func createConfigDirectory() error {
configDirectoryPath := filepath.Join(dependencies.Machine.HomeDirectory(), ConfigDirectoryName)
_, err := dependencies.OS.Stat(configDirectoryPath)
func createConfigDirectory(os operatingsystem.OperatingSystem, machine machine.Machine) error {
configDirectoryPath := filepath.Join(machine.HomeDirectory(), ConfigDirectoryName)
_, err := os.Stat(configDirectoryPath)

if err != nil && dependencies.OS.IsNotExist(err) {
err = dependencies.OS.MkdirAll(configDirectoryPath, 0700)
if err != nil && os.IsNotExist(err) {
err = os.MkdirAll(configDirectoryPath, 0700)
if err != nil {
return fmt.Errorf("failed to create config directory: %w", err)
}
Expand Down
50 changes: 13 additions & 37 deletions pkg/util/operatingsystem/operatingsystem.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package operatingsystem

import (
"fmt"
"os"
)

Expand All @@ -27,60 +26,37 @@ func (operatingSystem) Getenv(key string) string {
return os.Getenv(key)
}

// nolint:wrapcheck
func (operatingSystem) Stat(name string) (os.FileInfo, error) {
info, err := os.Stat(name)
if err != nil {
return nil, fmt.Errorf("failed to describe file '%s': %w", name, err)
}

return info, nil
return os.Stat(name)
}

// nolint:wrapcheck
func (operatingSystem) Getwd() (string, error) {
wd, err := os.Getwd()
if err != nil {
return "", fmt.Errorf("failed to get current directory: %w", err)
}

return wd, nil
return os.Getwd()
}

// nolint:wrapcheck
func (operatingSystem) OpenFile(name string, flag int, perm os.FileMode) (*os.File, error) {
file, err := os.OpenFile(name, flag, perm)
if err != nil {
return nil, fmt.Errorf("failed to open file '%s': %w", name, err)
}

return file, nil
return os.OpenFile(name, flag, perm)
}

// nolint:wrapcheck
func (operatingSystem) Remove(name string) error {
err := os.Remove(name)
if err != nil {
return fmt.Errorf("failed to remove file '%s': %w", name, err)
}

return nil
return os.Remove(name)
}

// nolint:wrapcheck
func (operatingSystem) IsNotExist(err error) bool {
return os.IsNotExist(err)
}

// nolint:wrapcheck
func (operatingSystem) MkdirAll(path string, perm os.FileMode) error {
err := os.MkdirAll(path, perm)
if err != nil {
return fmt.Errorf("failed to create directory '%s': %w", path, err)
}

return nil
return os.MkdirAll(path, perm)
}

// nolint:wrapcheck
func (operatingSystem) Rename(oldPath, newPath string) error {
err := os.Rename(oldPath, newPath)
if err != nil {
return fmt.Errorf("failed to rename '%s' to '%s': %w", oldPath, newPath, err)
}

return nil
return os.Rename(oldPath, newPath)
}
3 changes: 1 addition & 2 deletions pkg/util/operatingsystem/operatingsystem_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package operatingsystem

import (
"errors"
"fmt"
"io/fs"
"math/rand"
Expand Down Expand Up @@ -70,7 +69,7 @@ var _ = Describe("OperatingSystem", func() {
Expect(err).ToNot(HaveOccurred())

_, err = sut.Stat(file.Name())
Expect(os.IsNotExist(errors.Unwrap(err))).To(BeTrue())
Expect(os.IsNotExist(err)).To(BeTrue())
})

It("renames file", func() {
Expand Down

0 comments on commit 6a7adab

Please sign in to comment.