mirror of
https://github.com/RubyMetric/chsrc
synced 2025-06-09 04:16:21 +08:00
Add support for Java
This commit is contained in:
parent
07ce4c217e
commit
84a9e7338f
@ -43,7 +43,7 @@ set <target> <mirror> # 换源,指定使用某镜像站
|
|||||||
|
|
||||||
- [x] `chsrc set go`
|
- [x] `chsrc set go`
|
||||||
- [ ] `chsrc set rust` 或 `chsrc set cargo` 或 `chsrc crate`
|
- [ ] `chsrc set rust` 或 `chsrc set cargo` 或 `chsrc crate`
|
||||||
- [ ] `chsrc set java` 或 `chsrc set maven` 或 `chsrc set mvn` 或 `chsrc gradle`
|
- [x] `chsrc set java` 或 `chsrc set maven` 或 `chsrc set mvn` 或 `chsrc gradle`
|
||||||
|
|
||||||
- [x] `chsrc set r` 或 `chsrc set cran` (同时会为 `bioconductor` 换源)
|
- [x] `chsrc set r` 或 `chsrc set cran` (同时会为 `bioconductor` 换源)
|
||||||
- [x] `chsrc set julia`
|
- [x] `chsrc set julia`
|
||||||
|
101
chsrc.c
101
chsrc.c
@ -558,35 +558,68 @@ pl_dotnet_setsrc (char* option)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* TODO: 暂未实现 */
|
void
|
||||||
|
_pl_java_check_cmd(bool* maven_exist, bool* gradle_exist)
|
||||||
|
{
|
||||||
|
char* check_cmd = NULL;
|
||||||
|
check_cmd = xy_str_to_quietcmd("mvn --version");
|
||||||
|
*maven_exist = does_the_program_exist (check_cmd, "mvn");
|
||||||
|
|
||||||
|
check_cmd = xy_str_to_quietcmd("gradle --version");
|
||||||
|
*gradle_exist = does_the_program_exist (check_cmd, "gradle");
|
||||||
|
|
||||||
|
if (! *maven_exist && ! *gradle_exist) {
|
||||||
|
xy_error ("chsrc: maven 与 gradle 命令均未找到,请检查是否存在(其一)");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char*
|
||||||
|
_pl_java_find_maven_config ()
|
||||||
|
{
|
||||||
|
FILE* fp = popen("mvn -v", "r");
|
||||||
|
char buf[512];
|
||||||
|
fgets(buf, 512, fp);
|
||||||
|
memset(buf, 0, 512);
|
||||||
|
fgets(buf, 512, fp);
|
||||||
|
pclose(fp);
|
||||||
|
char* maven_home = xy_str_delete_prefix(buf, "Maven home: ");
|
||||||
|
// xy_info (buf);
|
||||||
|
maven_home = xy_str_strip(maven_home);
|
||||||
|
|
||||||
|
char* maven_config = NULL;
|
||||||
|
|
||||||
|
if (xy_on_windows)
|
||||||
|
maven_config = xy_2strjoin(maven_home, "\\conf\\settings.xml");
|
||||||
|
else
|
||||||
|
maven_config = xy_2strjoin(maven_home, "/conf/settings.xml");
|
||||||
|
|
||||||
|
return maven_config;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
pl_java_getsrc (char* option)
|
pl_java_getsrc (char* option)
|
||||||
{
|
{
|
||||||
// char* cmd = "npm config get registry";
|
bool maven_exist, gradle_exist;
|
||||||
|
_pl_java_check_cmd (&maven_exist, &gradle_exist);
|
||||||
|
char* maven_config = _pl_java_find_maven_config();
|
||||||
|
|
||||||
|
char* echo = xy_2strjoin("chsrc: 请查看 ", maven_config);
|
||||||
|
xy_info (echo);
|
||||||
// system(cmd);
|
// system(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Java 换源
|
* Java 换源,参考:https://developer.aliyun.com/mirror/maven
|
||||||
*
|
|
||||||
* 参考:https://developer.aliyun.com/mirror/maven
|
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
pl_java_setsrc (char* option)
|
pl_java_setsrc (char* option)
|
||||||
{
|
{
|
||||||
|
bool maven_exist, gradle_exist;
|
||||||
|
_pl_java_check_cmd (&maven_exist, &gradle_exist);
|
||||||
|
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
|
||||||
char* check_cmd = xy_str_to_quietcmd("mvn --version");
|
|
||||||
bool mvn_exist_b = does_the_program_exist (check_cmd, "mvn");
|
|
||||||
|
|
||||||
check_cmd = xy_str_to_quietcmd("gradle --version");
|
|
||||||
bool gradle_exist_b = does_the_program_exist (check_cmd, "gradle");
|
|
||||||
|
|
||||||
if (!mvn_exist_b && !gradle_exist_b) {
|
|
||||||
xy_error ("chsrc: maven 与 gradle 命令均未找到,请检查是否存在(其一)");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NULL!=option) {
|
if (NULL!=option) {
|
||||||
index = does_the_mirror_exist (pl_java_sources, pl_java_sources_n, "java", option);
|
index = does_the_mirror_exist (pl_java_sources, pl_java_sources_n, "java", option);
|
||||||
} else {
|
} else {
|
||||||
@ -596,33 +629,35 @@ pl_java_setsrc (char* option)
|
|||||||
source_info source = pl_java_sources[index];
|
source_info source = pl_java_sources[index];
|
||||||
chsrc_say_selection(&source);
|
chsrc_say_selection(&source);
|
||||||
|
|
||||||
if (mvn_exist_b) {
|
if (maven_exist) {
|
||||||
const char* file = xy_strjoin(3,
|
const char* file = xy_strjoin(7,
|
||||||
"<mirror>\n"
|
"<mirror>\n"
|
||||||
" <id>aliyunmaven</id>\n"
|
" <id>", source.mirror->code, "</id>\n"
|
||||||
" <mirrorOf>*</mirrorOf>\n"
|
" <mirrorOf>*</mirrorOf>\n"
|
||||||
" <name>阿里云公共仓库</name>\n"
|
" <name>", source.mirror->name, "</name>\n"
|
||||||
" <url>", source.url, "</url>\n"
|
" <url>", source.url, "</url>\n"
|
||||||
"</mirror>");
|
"</mirror>");
|
||||||
|
|
||||||
xy_info ("chsrc: 请在您的 maven安装目录/conf/settings.xml 中添加:\n");
|
char* maven_config = _pl_java_find_maven_config();
|
||||||
|
char* echo = xy_strjoin(3, "chsrc: 请在您的 maven 配置文件 ", maven_config, " 中添加:");
|
||||||
|
xy_info(echo);
|
||||||
puts (file);
|
puts (file);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gradle_exist_b) {
|
if (gradle_exist) {
|
||||||
|
if (maven_exist) puts("");
|
||||||
const char* file = xy_strjoin(3,
|
const char* file = xy_strjoin(3,
|
||||||
"allprojects {\n"
|
"allprojects {\n"
|
||||||
" repositories {\n"
|
" repositories {\n"
|
||||||
" maven { url '", source.url, "' }\n"
|
" maven { url '", source.url, "' }\n"
|
||||||
" mavenLocal()\n"
|
" mavenLocal()\n"
|
||||||
" mavenCentral()\n"
|
" mavenCentral()\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"}");
|
"}");
|
||||||
|
|
||||||
xy_info ("chsrc: 请在您的 build.gradle 中添加:\n");
|
xy_info ("chsrc: 请在您的 build.gradle 中添加:");
|
||||||
puts (file);
|
puts (file);
|
||||||
}
|
}
|
||||||
|
|
||||||
chsrc_say_thanks(&source);
|
chsrc_say_thanks(&source);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -968,13 +1003,13 @@ def_target_info(pl_nodejs);
|
|||||||
def_target_info(pl_perl);
|
def_target_info(pl_perl);
|
||||||
def_target_info(pl_php);
|
def_target_info(pl_php);
|
||||||
def_target_info(pl_go);
|
def_target_info(pl_go);
|
||||||
|
def_target_info(pl_java);
|
||||||
def_target_info(pl_r);
|
def_target_info(pl_r);
|
||||||
def_target_info(pl_julia);
|
def_target_info(pl_julia);
|
||||||
|
|
||||||
target_info
|
target_info
|
||||||
pl_rust_target = {pl_rust_setsrc, NULL, pl_rust_sources, pl_rust_sources_n},
|
pl_rust_target = {pl_rust_setsrc, NULL, pl_rust_sources, pl_rust_sources_n},
|
||||||
pl_dotnet_target = {pl_dotnet_setsrc, NULL, pl_dotnet_sources, pl_dotnet_sources_n},
|
pl_dotnet_target = {pl_dotnet_setsrc, NULL, pl_dotnet_sources, pl_dotnet_sources_n};
|
||||||
pl_java_target = {pl_java_setsrc, NULL, pl_java_sources, pl_java_sources_n};
|
|
||||||
|
|
||||||
|
|
||||||
#define targetinfo(t) (const char const*)t
|
#define targetinfo(t) (const char const*)t
|
||||||
@ -1021,15 +1056,17 @@ static const char const
|
|||||||
target_info
|
target_info
|
||||||
wr_anaconda_target = {NULL, NULL, NULL, 0},
|
wr_anaconda_target = {NULL, NULL, NULL, 0},
|
||||||
wr_emacs_target = {NULL, NULL, NULL, 0},
|
wr_emacs_target = {NULL, NULL, NULL, 0},
|
||||||
wr_tex_target = {NULL, NULL, NULL, 0};
|
wr_tex_target = {NULL, NULL, NULL, 0},
|
||||||
|
wr_brew_target = {NULL, NULL, NULL, 0};
|
||||||
|
|
||||||
static const char const
|
static const char const
|
||||||
*wr_anaconda[] = {"conda", "anaconda", NULL, targetinfo(&wr_anaconda_target)},
|
*wr_anaconda[] = {"conda", "anaconda", NULL, targetinfo(&wr_anaconda_target)},
|
||||||
*wr_emacs [] = {"emacs", NULL, targetinfo(&wr_emacs_target)},
|
*wr_emacs [] = {"emacs", NULL, targetinfo(&wr_emacs_target)},
|
||||||
*wr_tex [] = {"latex", "ctan", "tex", NULL, targetinfo(&wr_tex_target) },
|
*wr_tex [] = {"latex", "ctan", "tex", NULL, targetinfo(&wr_tex_target) },
|
||||||
|
*wr_brew [] = {"brew", "homebrew", NULL, targetinfo(&wr_brew_target)},
|
||||||
**wr_softwares[] =
|
**wr_softwares[] =
|
||||||
{
|
{
|
||||||
wr_anaconda, wr_emacs, wr_tex
|
wr_anaconda, wr_emacs, wr_tex, wr_brew
|
||||||
};
|
};
|
||||||
#undef targetinfo
|
#undef targetinfo
|
||||||
/************************************** End Target Matrix ****************************************/
|
/************************************** End Target Matrix ****************************************/
|
||||||
@ -1050,7 +1087,7 @@ usage[] = {
|
|||||||
"cesu <target> 对该软件所有源测速",
|
"cesu <target> 对该软件所有源测速",
|
||||||
"get <target> 查看当前软件的源使用情况",
|
"get <target> 查看当前软件的源使用情况",
|
||||||
"set <target> 换源,自动测速后挑选最快源",
|
"set <target> 换源,自动测速后挑选最快源",
|
||||||
"set <target> def(ault) 换源,默认挑选经维护者测速排序第一的源",
|
"set <target> def(ault) 换源,默认挑选维护者测速第一的源",
|
||||||
"set <target> <mirror> 换源,指定使用某镜像站\n"
|
"set <target> <mirror> 换源,指定使用某镜像站\n"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user