@@ -3,6 +3,7 @@ package main
3
3
import (
4
4
"bytes"
5
5
"fmt"
6
+ "io"
6
7
"io/ioutil"
7
8
"log"
8
9
"os"
@@ -29,7 +30,7 @@ func TestMyFileOperations(t *testing.T) {
29
30
atlasdir := dstDir
30
31
datadir := filepath .Join (dstDir , "X" )
31
32
epudir := filepath .Join (dstDir , "Y" )
32
- if err := syncXMLFromYtoX (datadir , epudir , 8 , atlasdir ); err != nil {
33
+ if err := SyncXMLFromYtoX (datadir , epudir , 8 , atlasdir ); err != nil {
33
34
t .Errorf ("runFileOperations failed: %v" , err )
34
35
}
35
36
expectedFolder , err := filepath .Abs ("CorrectTarget" )
@@ -95,3 +96,37 @@ func compareDirectories(expectedDir, targetDir string) error {
95
96
})
96
97
return err
97
98
}
99
+
100
+ // for the initial copy to tmp
101
+ func copyDir (src , dst string ) error {
102
+ return filepath .Walk (src , func (path string , info os.FileInfo , err error ) error {
103
+ if err != nil {
104
+ return err
105
+ }
106
+
107
+ rel , err := filepath .Rel (src , path )
108
+ if err != nil {
109
+ return err
110
+ }
111
+ targetPath := filepath .Join (dst , rel )
112
+ if info .IsDir () {
113
+ return os .MkdirAll (targetPath , info .Mode ())
114
+ }
115
+ in , err := os .Open (path )
116
+ if err != nil {
117
+ return err
118
+ }
119
+ defer in .Close ()
120
+
121
+ out , err := os .Create (targetPath )
122
+ if err != nil {
123
+ return err
124
+ }
125
+ defer out .Close ()
126
+
127
+ if _ , err := io .Copy (out , in ); err != nil {
128
+ return err
129
+ }
130
+ return os .Chmod (targetPath , info .Mode ())
131
+ })
132
+ }
0 commit comments