-
-
Notifications
You must be signed in to change notification settings - Fork 812
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add_requires支持代理 #854
Comments
直接 |
你们这都是什么代理软件啊,连环境变量都不设的吗 |
SSR
|
代理的详细配置可以放到 xmake config/global里面去配置 add_requires只需要指定是否开启代理 add_requires("boost", {proxy = true}) 这个可以做,不过现在忙其他的,等排期吧,时间允许就下个版本,来不及的就只能再过个版本了 你先自己手动配置代理好了,自己通过域名白名单 也能控制哪些走代理 |
环境变量影响全局是啥理论啊。。。 |
环境变量不仅仅影响 |
curl和git的代理不是可以全局文件配置的么 |
可以的,不如集成到 |
所有工具不都认这玩意的吗 |
还能影响到啥啊? xmake里有请求的不就git和curl了 |
举个例子:要单独使用使用git/curl(也就是和 |
只给xmake设这个环境变量不就行了。。。 |
总之,这样的接口不够好。 |
感觉不太对,这玩意做出来不是面临和yarn.lock (v1) 和 package-lock.json 一样的问题?换个编译环境直接爆炸,尤其是上 CI 的时候。 说到底,代理这个事情,基本上是和机器绑定的,即使要与xmake关联,也是放在 |
add_requires 既然是声明式的,那就不应该去关心包从哪里来,怎么来的问题 倒是可以提供一个 package_resolver 的 API,通过在 |
接口只要代理地址以及哪些包需要代理就可以了。 |
全局的代理设置我加上了,对wget, curl和git都会生效,配置方式参考curl的用法就行了。 $ xmake g --help
-x PROXY, --proxy=PROXY Use proxy on given port. [PROTOCOL://]HOST[:PORT]
e.g.
- xmake g --proxy='http://host:port'
- xmake g --proxy='https://host:port'
- xmake g --proxy='socks5://host:port' 至于每个包的url过滤规则设置,等后面有时间,我需要先完善下 ~/.xmakerc.lua 才会加上支持,等后面看排期吧。。现在可以先全局切下凑活着用用。。 目前仅在toolchain分支生效 |
xmakerc.lua配置里面我懒得整了,直接xmake global里面搞搞好了。。我加了个配置参数: --proxy_hosts=PROXY_HOSTS Only enable proxy for the given hosts list, it will enable all if be unset,
and we can pass match pattern to list:
e.g.
- xmake g --proxy_hosts='github.com,gitlab.*,*.xmake.io' 用来设置代理host名单,如果没设置这个,启用了--proxy参数,那就是全局代理 如果设置了hosts列表,那么之后这个列表里面匹配的host才走代理。。 --proxy_host支持多个hosts设置,逗号分隔,并且支持基础的模式匹配 |
这里又变成逗号分隔了? |
host又不是路径,一会win ; 一会 linux : 好乱的,而且: 也跟 host:port 冲突,虽然这里只过滤 host ,不过说不准以后还要过滤: |
可是之前那个 modes, archs也不是路径啊。。。。当时怎么想的 |
忘记了,原本当初我就是逗号分隔来着的,后来你给改成了 path sep,具体啥原因我也忘了。。反正想着跟其他的 带路径的 分隔统一下 也无所谓。。 不过这里 说不准之后会跟 : 冲突,还不如 , 兼容性好些。 |
反正我记得讨论了一下你也没啥意见就改了。。不过应该还是兼容逗号的 |
是的,反正逗号也兼容的,所以也无所谓了。。其实我个人还是觉得 只有路径值列表 采用 sep 分隔,其他值还是能用逗号 统一各端会通用些。。 不然如果用户写脚本去wrap一些xmake调用传参,还得要求用户分win/unix去特殊处理 也很蛋疼。。 |
这样
|
先就这样吧 我懒得改了 反正xmake编译也不会拉太多包 长不了哪去 大部分host也都是github 再长就直接全局吧 让代理软件自己配置也可以 |
|
考虑了一下,免费代理都不支持代理规则, |
默认不设置,就是全局生效 |
--proxy_pac=PROXY_PAC Set the auto proxy configuration file. (default: pac.lua)
e.g.
- xmake g --proxy_pac=pac.lua (in /Users/ruki/.xmake or absolute path)
- function main(url, host)
if host == 'github.com' then
return true
end
end 我加了个proxy_pac参数,来设置pac自动代理规则 如果有proxy_hosts优先走这个,没有的话可以走pac。。 默认路径: 也可以手动指定pac全路径, 配置规则描述: function main(url, host)
if host:find("bintray.com") then
return true
end
end lua的,如果返回true,就是走代理,不返回或者返回false,就是不走代理。 |
也是为了xmake更好,有什么想法我就直接说了
觉得难记,对用户不够友好 这样怎么样
proxy_rule.txt可以用正则表达式一行一个,用正则表达式好处是普及、功能强、没有外部依赖 |
proxy_hosts支持lua模式匹配,已足够使用,正则暂时不考虑支持,需要额外引入依赖库 目前就先这样了 暂时不考虑再改了 |
好吧 PS:
|
不容易,得移植c库,还要封装上层lua接口,另外lua本身就有模式匹配,有多了个正则匹配,返回会给用户误导,哪些模块和场景走了lua模式匹配,哪些又得用正则的,目前add_files等大部分接口都是lua匹配,已经完全够用 另外lua的设计原本初衷就是简单、轻量,设计lua模式匹配就是为了保证轻量的同时,又能满足80%场景的匹配需求。 接入正则,就得一直pcre/pcre2等库进来,xmake也会变大不少,仅仅为了那1%的使用场景,去整个库进来,得不偿失,完全没必要 另外,目前这么多用下来, 个人觉得lua的模式匹配已经完全足够满足日常的匹配需求,如果真有些复杂的匹配做不到的场景,稍微写几行lua脚本也能处理 而xmake设计初衷之一,也要保证程序尽量精简、少依赖,不能因为功能越加越多,随便一个需求,就引入个库进来,一会正则库,一会7z库,回头不知道又要加什么库进来,这么搞法迟早得完。
--help有说明,另外在不友好,就两个选择,研究个几分钟就会了,回头文档也会说明,除非用户不看文档和help,那我管不了。连文档都不看的人,不友好就不友好了。 |
那lua自带的好,简单够用不用第三方
我也想到查文档。如果看了文档,觉得这个写法很自然很容易记住,那就更好了。 另外现在文档不是太方便查:
|
这个没办法,用的也是docsify的第三方文档框架,也就是为了省事,没时间精力去折腾这些问题,你可以给docsify提issues,他们不解我也没办法。 而且之前用的docute问题更多,我已经花了很多时间,才彻底切到docisfy上面,算是比之前好用很多了,不想再折腾了,光写文档就已经很累了。。凑活着用吧。 |
与其文档,不如GUI,先这样 |
代理新增对 mirror url 的切换支持,可以自己配置切换到 fastgit 等镜像 github 站点加速包的下载,具体见:#1358 |
刚需啊,github下载release太慢了,10KB/s都困难,libcurl加个参数,体验可以好很多
如:
add_requires("boost", {configs={proxy=sock5h://localhshot:1234})
The text was updated successfully, but these errors were encountered: