v / examples / diff.v
41 lines · 35 sloc · 703 bytes · 3291372c571d8ae654589f1ffe65c42e8c5b1c63
Raw
1module main
2
3import arrays.diff
4import os
5
6// diff_files generate diff for two files.
7fn diff_files(src_file string, dst_file string) !string {
8 src := os.read_lines(src_file)!
9 dst := os.read_lines(dst_file)!
10
11 mut ctx := diff.diff(src, dst)
12 return ctx.generate_patch(colorful: true, block_header: true)
13}
14
15fn main() {
16 f1 := "Module{
17 name: 'Foo'
18 description: 'Awesome V module.'
19 version: '0.0.0'
20 dependencies: []
21}
22"
23 f2 := "Module{
24 name: 'foo'
25 description: 'Awesome V module.'
26 version: '0.1.0'
27 license: 'MIT'
28 dependencies: []
29}
30"
31 p1 := 'diff_f1.txt'
32 p2 := 'diff_f2.txt'
33 os.write_file(p1, f1)!
34 os.write_file(p2, f2)!
35
36 str := diff_files(p1, p2)!
37 println(str)
38
39 os.rm(p1)!
40 os.rm(p2)!
41}
42