diff options
author | George Roman <george.roman.99@gmail.com> | 2018-06-13 20:09:07 +0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2018-06-14 14:14:44 -0300 |
commit | c01c8a21a735c3a74270635e5bd843bac71bc624 (patch) | |
tree | 64218be890422d910632e0260bf4c48e02991b3e /src | |
parent | a60bd09ffda9c36443cf64c4c1f14d1c09442148 (diff) | |
download | luarocks-c01c8a21a735c3a74270635e5bd843bac71bc624.tar.gz luarocks-c01c8a21a735c3a74270635e5bd843bac71bc624.tar.bz2 luarocks-c01c8a21a735c3a74270635e5bd843bac71bc624.zip |
Tests: patch.lua
Diffstat (limited to 'src')
-rw-r--r-- | src/luarocks/tools/patch.lua | 41 |
1 files changed, 1 insertions, 40 deletions
diff --git a/src/luarocks/tools/patch.lua b/src/luarocks/tools/patch.lua index 2e95e879..b46bd1d0 100644 --- a/src/luarocks/tools/patch.lua +++ b/src/luarocks/tools/patch.lua | |||
@@ -55,35 +55,6 @@ local function exists(filename) | |||
55 | end | 55 | end |
56 | local function isfile() return true end --FIX? | 56 | local function isfile() return true end --FIX? |
57 | 57 | ||
58 | local function read_file(filename) | ||
59 | local fh, data, err, oserr | ||
60 | fh, err, oserr = io.open(filename, 'rb') | ||
61 | if not fh then return fh, err, oserr end | ||
62 | data, err, oserr = fh:read'*a' | ||
63 | fh:close() | ||
64 | if not data then return nil, err, oserr end | ||
65 | return data | ||
66 | end | ||
67 | |||
68 | local function write_file(filename, data) | ||
69 | local fh, status, err, oserr | ||
70 | fh, err, oserr = io.open(filename 'wb') | ||
71 | if not fh then return fh, err, oserr end | ||
72 | status, err, oserr = fh:write(data) | ||
73 | fh:close() | ||
74 | if not status then return nil, err, oserr end | ||
75 | return true | ||
76 | end | ||
77 | |||
78 | local function file_copy(src, dest) | ||
79 | local data, status, err, oserr | ||
80 | data, err, oserr = read_file(src) | ||
81 | if not data then return data, err, oserr end | ||
82 | status, err, oserr = write_file(dest) | ||
83 | if not status then return status, err, oserr end | ||
84 | return true | ||
85 | end | ||
86 | |||
87 | local function string_as_file(s) | 58 | local function string_as_file(s) |
88 | return { | 59 | return { |
89 | at = 0, | 60 | at = 0, |
@@ -720,17 +691,7 @@ local function patch_file(source, target, epoch, hunks, strip, create_delete) | |||
720 | warning(format("failed backing up %s when patching", source)) | 691 | warning(format("failed backing up %s when patching", source)) |
721 | return false | 692 | return false |
722 | end | 693 | end |
723 | ok = patch_hunks(backupname, source, hunks) | 694 | patch_hunks(backupname, source, hunks) |
724 | if not ok then | ||
725 | warning(format("error patching file %s", source)) | ||
726 | if file_copy(source, source .. ".invalid") then | ||
727 | warning(format("invalid version is saved to %s", | ||
728 | source .. ".invalid")) | ||
729 | -- todo: proper rejects | ||
730 | os.rename(backupname, source) | ||
731 | end | ||
732 | return false | ||
733 | end | ||
734 | info(format("successfully patched %s", source)) | 695 | info(format("successfully patched %s", source)) |
735 | os.remove(backupname) | 696 | os.remove(backupname) |
736 | return true | 697 | return true |