summaryrefslogtreecommitdiff
path: root/xmake/actions/require/impl/action/patch.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2020-01-15 22:51:18 +0800
committerruki <[email protected]>2020-01-15 11:07:48 +0800
commit20cf6c946fc6c3a09205dc8d4e768ab9d2b001ca (patch)
tree47b976574dc68d456537d45504c9afc41f9a3d52 /xmake/actions/require/impl/action/patch.lua
parenteb1effdccd96425375af083d45a94a790f0c6d56 (diff)
download resources for package
Diffstat (limited to 'xmake/actions/require/impl/action/patch.lua')
-rw-r--r--xmake/actions/require/impl/action/patch.lua85
1 files changed, 0 insertions, 85 deletions
diff --git a/xmake/actions/require/impl/action/patch.lua b/xmake/actions/require/impl/action/patch.lua
deleted file mode 100644
index 66340b8d8..000000000
--- a/xmake/actions/require/impl/action/patch.lua
+++ /dev/null
@@ -1,85 +0,0 @@
---!A cross-platform build utility based on Lua
---
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
---
--- http://www.apache.org/licenses/LICENSE-2.0
---
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
---
--- Copyright (C) 2015-2020, TBOOX Open Source Group.
---
--- @author ruki
--- @file patch.lua
---
-
--- imports
-import("core.base.option")
-import("net.http")
-import("devel.git")
-
--- do patch
-function _patch(package, patch_url, patch_hash)
-
- -- trace
- vprint("patching %s to %s-%s ..", patch_url, package:name(), package:version_str())
-
- -- get the patch file
- local patch_file = path.join(os.tmpdir(), "patches", package:name(), package:version_str(), (path.filename(patch_url):gsub("%?.+$", "")))
-
- -- the package file have been downloaded?
- local cached = true
- if option.get("force") or not os.isfile(patch_file) or patch_hash ~= hash.sha256(patch_file) then
-
- -- no cached
- cached = false
-
- -- attempt to remove the previous file first
- os.tryrm(patch_file)
-
- -- download the patch file
- if patch_url:find(string.ipattern("https-://")) or patch_url:find(string.ipattern("ftps-://")) then
- http.download(patch_url, patch_file)
- else
- -- copy the patch file
- if os.isfile(patch_url) then
- os.cp(patch_url, patch_file)
- else
- local scriptdir = package:scriptdir()
- if scriptdir and os.isfile(path.join(scriptdir, patch_url)) then
- os.cp(path.join(scriptdir, patch_url), patch_file)
- else
- raise("patch(%s): not found!", patch_url)
- end
- end
- end
-
- -- check hash
- if patch_hash and patch_hash ~= hash.sha256(patch_file) then
- raise("patch(%s): unmatched checksum!", patch_url)
- end
- end
-
- -- apply the patch file
- git.apply(patch_file)
-end
-
--- patch the given package
-function main(package)
-
- -- no patches?
- local patches = package:patches()
- if not patches then
- return
- end
-
- -- do all patches
- for _, patchinfo in ipairs(patches) do
- _patch(package, patchinfo.url, patchinfo.sha256)
- end
-end