Skip to content

Commit 3fbfd87

Browse files
fix: incorrect path being displayed in the error when failing to create the temporary directory (#1033)
Signed-off-by: Harikrishnan Balagopal <[email protected]>
1 parent f40ace2 commit 3fbfd87

File tree

2 files changed

+25
-29
lines changed

2 files changed

+25
-29
lines changed

common/utils.go

+23-27
Original file line numberDiff line numberDiff line change
@@ -899,89 +899,85 @@ func CreateAssetsData(assetsFS embed.FS, permissions map[string]int) (assetsPath
899899
// Return the absolute version of existing asset paths.
900900
tempPath, err = filepath.Abs(TempPath)
901901
if err != nil {
902-
logrus.Errorf("Unable to make the temporary directory path %q absolute. Error: %q", tempPath, err)
903-
return "", "", "", err
902+
return "", "", "", fmt.Errorf("failed to make the temporary directory path '%s' absolute. Error: %w", TempPath, err)
904903
}
905904
remoteTempPath, err = filepath.Abs(RemoteTempPath)
906905
if err != nil {
907-
logrus.Errorf("Unable to make the temporary directory path %q absolute. Error: %q", tempPath, err)
908-
return "", "", "", err
906+
return "", "", "", fmt.Errorf("failed to make the remote temporary directory path '%s' absolute. Error: %w", RemoteTempPath, err)
909907
}
910908
assetsPath, err = filepath.Abs(AssetsPath)
911909
if err != nil {
912-
logrus.Errorf("Unable to make the assets path %q absolute. Error: %q", assetsPath, err)
913-
return "", "", "", err
910+
return "", "", "", fmt.Errorf("failed to make the assets path '%s' absolute. Error: %w", AssetsPath, err)
914911
}
915912

916913
// Try to create a new temporary directory for the assets.
917914
if newTempPath, err := os.MkdirTemp("", types.AppName+"*"); err != nil {
918-
logrus.Errorf("Unable to create temp dir. Defaulting to local path.")
915+
logrus.Errorf("failed to create a temporary directory for the assets. Defaulting to the local path '%s' . Error: %q", tempPath, err)
919916
} else {
920917
tempPath = newTempPath
921918
assetsPath = filepath.Join(newTempPath, AssetsDir)
922919
}
923920

924921
// Try to create a new temporary directory for the remote source folders.
925922
if newTempPath, err := os.MkdirTemp("", types.AppName+"*"); err != nil {
926-
logrus.Errorf("Unable to create temp dir. Defaulting to local path.")
923+
logrus.Errorf("failed to create a temporary directory for the remote sources. Defaulting to the local path '%s' . Error: %q", remoteTempPath, err)
927924
} else {
928925
remoteTempPath = newTempPath
929926
}
930927

931928
// Either way create the subdirectory and untar the assets into it.
932929
if err := os.MkdirAll(assetsPath, DefaultDirectoryPermission); err != nil {
933-
logrus.Errorf("Unable to create the assets directory at path %q Error: %q", assetsPath, err)
934-
return "", "", "", err
930+
return "", "", "", fmt.Errorf("failed to create the assets directory at path '%s' . Error: %w", assetsPath, err)
935931
}
936932
if err := CopyEmbedFSToDir(assetsFS, ".", assetsPath, permissions); err != nil {
937-
logrus.Errorf("Unable to untar the assets into the assets directory at path %q Error: %q", assetsPath, err)
938-
return "", "", "", err
933+
return "", "", "", fmt.Errorf("failed to untar the assets into the assets directory at path '%s' . Error: %w", assetsPath, err)
939934
}
940935
return assetsPath, tempPath, remoteTempPath, nil
941936
}
942937

943938
// CopyEmbedFSToDir converts a string into a directory
944939
func CopyEmbedFSToDir(embedFS embed.FS, source, dest string, permissions map[string]int) (err error) {
945-
f, err := embedFS.Open(GetUnixPath(source))
940+
sourceUnixPath := GetUnixPath(source)
941+
f, err := embedFS.Open(sourceUnixPath)
946942
if err != nil {
947-
logrus.Errorf("Error while reading embedded file : %s", err)
948-
return err
943+
return fmt.Errorf("failed to open the embedded source file '%s' . Error: %w", sourceUnixPath, err)
949944
}
950945
finfo, err := f.Stat()
951946
if err != nil {
952-
logrus.Errorf("Error while reading stat of embedded file : %s", err)
953-
return err
947+
return fmt.Errorf("failed to stat the embedded source file '%s' . Error: %w", sourceUnixPath, err)
954948
}
955949
if finfo != nil && !finfo.Mode().IsDir() {
956-
permission, ok := permissions[GetUnixPath(source)]
950+
permission, ok := permissions[sourceUnixPath]
957951
if !ok {
958-
logrus.Errorf("Permission missing for file %s. Do `make generate` to update permissions file.", dest)
952+
logrus.Errorf("permissions missing for the file '%s' . Do `make generate` to update permissions file.", dest)
959953
}
960954
df, err := os.OpenFile(dest, os.O_RDWR|os.O_CREATE|os.O_TRUNC, os.FileMode(permission))
961955
if err != nil {
962-
logrus.Errorf("Error while opening temp dest assets file : %s", err)
963-
return err
956+
return fmt.Errorf("failed to open the temporary dest assets file '%s' . Error: %w", dest, err)
964957
}
965958
defer df.Close()
966959
size, err := io.Copy(df, f)
967960
if err != nil {
968-
logrus.Errorf("Error while copying embedded file : %s", err)
969-
return err
961+
return fmt.Errorf("failed to copy the embedded file. Error: %w", err)
970962
}
971963
if size != finfo.Size() {
972964
return fmt.Errorf("size mismatch: Wrote %d, Expected %d", size, finfo.Size())
973965
}
974966
return nil
975967
}
976968
if err := os.MkdirAll(dest, DefaultDirectoryPermission); err != nil {
977-
return err
969+
return fmt.Errorf("failed to create the destination directory at '%s' . Error: %w", dest, err)
978970
}
979-
dirEntries, err := embedFS.ReadDir(GetUnixPath(source))
971+
dirEntries, err := embedFS.ReadDir(sourceUnixPath)
980972
if err != nil {
981-
return err
973+
return fmt.Errorf("failed to read the destination directory at '%s' . Error: %w", dest, err)
982974
}
983975
for _, de := range dirEntries {
984-
CopyEmbedFSToDir(embedFS, filepath.Join(source, de.Name()), filepath.Join(dest, removeDollarPrefixFromHiddenDir(de.Name())), permissions)
976+
t1Src := filepath.Join(source, de.Name())
977+
t1Dest := filepath.Join(dest, removeDollarPrefixFromHiddenDir(de.Name()))
978+
if err := CopyEmbedFSToDir(embedFS, t1Src, t1Dest, permissions); err != nil {
979+
logrus.Errorf("failed to copy the embedded directory from '%s' to '%s' . Skipping. Error: %q", t1Src, t1Dest, err)
980+
}
985981
}
986982
return nil
987983
}

main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ func main() {
3131
assetsFilePermissions := map[string]int{}
3232
err := yaml.Unmarshal([]byte(assets.AssetFilePermissions), &assetsFilePermissions)
3333
if err != nil {
34-
logrus.Fatalf("unable to convert permissions. Error: %q", err)
34+
logrus.Fatalf("failed to unmarshal the assets permissions file as YAML. Error: %q", err)
3535
}
3636
assetsPath, tempPath, remoteTempPath, err := common.CreateAssetsData(assets.AssetsDir, assetsFilePermissions)
3737
if err != nil {
38-
logrus.Fatalf("unable to create the assets directory. Error: %q", err)
38+
logrus.Fatalf("failed to create the assets directory. Error: %q", err)
3939
}
4040
common.TempPath = tempPath
4141
common.AssetsPath = assetsPath

0 commit comments

Comments
 (0)