Skip to content

Commit 65ffc03

Browse files
committed
- [+] none-video files are now duplicated to dest dir
1 parent eb446ca commit 65ffc03

4 files changed

Lines changed: 72 additions & 2 deletions

File tree

ffcvt.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ func visit(path string, f os.FileInfo, err error) error {
198198
}
199199

200200
// Append the video file to the list, unless it's encoded already
201+
// and duplicate none-video files to dest dir as well
201202
func appendVideo(fname string) {
202203
if Opts.WDirectory == "" && fname[len(fname)-5:] == encodedExt {
203204
debug("Already-encoded file ignored: "+fname, 1)
@@ -206,7 +207,16 @@ func appendVideo(fname string) {
206207

207208
fext := strings.ToUpper(fname[len(fname)-4:])
208209
if strings.Index(Opts.Exts, fext) < 0 {
209-
debug("None-video file ignored: "+fname, 3)
210+
// None-video files, dup to dest, hardlink 1st else copy
211+
if Opts.WDirectory != "" {
212+
src := Opts.Directory+ "/" + fname
213+
dst := Opts.WDirectory+ "/" + fname
214+
err := linkFile(src, dst)
215+
if err != nil {
216+
copyFile(src, dst)
217+
}
218+
}
219+
debug("None-video file '"+fname+"' duplicated to dest dir.", 1)
210220
return
211221
}
212222

@@ -243,7 +253,8 @@ func createPar2s(workDirs []string) {
243253
os.Chdir(dir)
244254
dirName := filepath.Base(dir)
245255

246-
cmd := []string{"par2create", "-u", "zz_" + dirName + ".par2", "*" + encodedExt}
256+
// create par2s for all files within dest dir
257+
cmd := []string{"par2create", "-u", "zz_" + dirName + ".par2", "*"}
247258
debug(strings.Join(cmd, " "), 1)
248259

249260
out, err := exec.Command(cmd[0], cmd[1:]...).CombinedOutput()

file_dup.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// Copy or hardlink a file in Go
2+
3+
package main
4+
5+
import (
6+
"io"
7+
"os"
8+
)
9+
10+
func mainSample() {
11+
copyFile("test.txt", "test_copy.txt")
12+
copyFile("test_copy.txt", "test_link.txt")
13+
}
14+
15+
// hardlink a file
16+
func linkFile(src, dst string) error {
17+
return os.Link(src, dst)
18+
}
19+
20+
// Copy a file
21+
func copyFile(src, dst string) {
22+
srcFile, err := os.Open(src)
23+
check(err)
24+
defer srcFile.Close()
25+
26+
destFile, err := os.Create(dst) // creates if file doesn't exist
27+
check(err)
28+
defer destFile.Close()
29+
30+
_, err = io.Copy(destFile, srcFile) // check first var for number of bytes copied
31+
check(err)
32+
33+
err = destFile.Sync()
34+
check(err)
35+
}
36+
37+
func check(err error) {
38+
checkError(err)
39+
}

test/ffcvt_test.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ ffcvt: to execute -
148148
Org Size: 0 MB
149149
New Size: 0 MB
150150
Saved: 0%
151+
] None-video file './ffcvt_test.txt' duplicated to dest dir.
152+
] None-video file './test-all.sh' duplicated to dest dir.
151153
] Skip symlink file: ./test1.avi
152154
] Skip symlink file: ./test2.avi
153155
] Skip symlink file: ./test3.webm
@@ -161,6 +163,8 @@ ffcvt: to execute -
161163
Org Size: 0 MB
162164
New Size: 0 MB
163165
Saved: 0%
166+
] None-video file './ffcvt_test.txt' duplicated to dest dir.
167+
] None-video file './test-all.sh' duplicated to dest dir.
164168

165169
== Transcoding [1/4]: 'StreamSample.mkv'
166170
under .
@@ -189,6 +193,8 @@ ffcvt: to execute -
189193
Org Size: 0 MB
190194
New Size: 0 MB
191195
Saved: 0%
196+
] None-video file './ffcvt_test.txt' duplicated to dest dir.
197+
] None-video file './test-all.sh' duplicated to dest dir.
192198
] Skip symlink file: ./test1.avi
193199
] Skip symlink file: ./test2.avi
194200
] Skip symlink file: ./test3.webm
@@ -202,6 +208,8 @@ ffcvt: to execute -
202208
Org Size: 0 MB
203209
New Size: 0 MB
204210
Saved: 0%
211+
] None-video file './ffcvt_test.txt' duplicated to dest dir.
212+
] None-video file './test-all.sh' duplicated to dest dir.
205213

206214
== Transcoding [1/4]: 'StreamSample.mkv'
207215
under .
@@ -231,6 +239,8 @@ Org Size: 0 MB
231239
New Size: 0 MB
232240
Saved: 0%
233241
] Transcoding to /tmp/test
242+
] None-video file './ffcvt_test.txt' duplicated to dest dir.
243+
] None-video file './test-all.sh' duplicated to dest dir.
234244

235245
== Transcoding [1/4]: 'StreamSample.mkv'
236246
under .

test2/ffcvt_test.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,14 +148,18 @@ ffcvt: to execute -
148148
Org Size: 0 MB
149149
New Size: 0 MB
150150
Saved: 0%
151+
] None-video file './ffcvt_test.txt' duplicated to dest dir.
151152
] Skip symlink file: ./subdir/test_s1.avi
153+
] None-video file './test-all.sh' duplicated to dest dir.
152154
] Skip symlink file: ./test1.avi
153155
] Skip symlink file: ./test2.avi
154156
] Skip symlink file: ./test3.webm
155157

156158
Org Size: 0 MB
157159
New Size: 0 MB
158160
Saved: 0%
161+
] None-video file './ffcvt_test.txt' duplicated to dest dir.
162+
] None-video file './test-all.sh' duplicated to dest dir.
159163

160164
== Transcoding [1/4]: 'test_s1.avi'
161165
under subdir
@@ -184,14 +188,18 @@ ffcvt: to execute -
184188
Org Size: 0 MB
185189
New Size: 0 MB
186190
Saved: 0%
191+
] None-video file './ffcvt_test.txt' duplicated to dest dir.
187192
] Skip symlink file: ./subdir/test_s1.avi
193+
] None-video file './test-all.sh' duplicated to dest dir.
188194
] Skip symlink file: ./test1.avi
189195
] Skip symlink file: ./test2.avi
190196
] Skip symlink file: ./test3.webm
191197

192198
Org Size: 0 MB
193199
New Size: 0 MB
194200
Saved: 0%
201+
] None-video file './ffcvt_test.txt' duplicated to dest dir.
202+
] None-video file './test-all.sh' duplicated to dest dir.
195203

196204
== Transcoding [1/4]: 'test_s1.avi'
197205
under subdir
@@ -221,6 +229,8 @@ Org Size: 0 MB
221229
New Size: 0 MB
222230
Saved: 0%
223231
] Transcoding to /tmp/test2
232+
] None-video file './ffcvt_test.txt' duplicated to dest dir.
233+
] None-video file './test-all.sh' duplicated to dest dir.
224234

225235
== Transcoding [1/4]: 'test_s1.avi'
226236
under subdir

0 commit comments

Comments
 (0)