mirror of
https://github.com/RubyMetric/chsrc.git
synced 2025-03-09 20:15:17 +08:00
Call the function
This commit is contained in:
parent
89f2eb0f09
commit
5d3361a082
64
chsrc.c
64
chsrc.c
@ -3,27 +3,6 @@
|
||||
|
||||
#define Chsrc_Version "v0.1.0"
|
||||
|
||||
static const char const
|
||||
*pl_ruby[] = {"gem", "ruby", "rb", NULL},
|
||||
*pl_python[] = {"pip", "python", "py", NULL},
|
||||
*pl_nodejs[] = {"npm", "node", "nodejs", "js", NULL},
|
||||
*pl_perl[] = {"perl", "cpan", NULL},
|
||||
*pl_php[] = {"php", "composer", NULL},
|
||||
*pl_cran[] = {"r", "cran", NULL},
|
||||
*pl_rust[] = {"rust", "cargo", "crate", "crates", NULL},
|
||||
*pl_go[] = {"go", "golang", "goproxy", NULL},
|
||||
*pl_dotnet[] = {"nuget","net", "dotnet", ".net", NULL},
|
||||
*pl_maven[] = {"maven", NULL},
|
||||
*pl_gradle[] = {"gradel",NULL},
|
||||
*pl_julia[] = {"julia", NULL},
|
||||
// Java暂时需要直接指定包管理器
|
||||
// pl_java
|
||||
**pl_packagers[] = {
|
||||
pl_ruby, pl_python, pl_nodejs, pl_perl, pl_php, pl_cran,
|
||||
pl_rust, pl_go, pl_dotnet, pl_maven, pl_gradle, pl_julia
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Python换源
|
||||
@ -86,6 +65,27 @@ pl_chsrc_ruby (char* source_name)
|
||||
free(cmd);
|
||||
}
|
||||
|
||||
#define arg(func) (const char const*)func
|
||||
static const char const
|
||||
*pl_ruby[] = {"gem", "ruby", "rb", NULL, arg(pl_chsrc_ruby)},
|
||||
*pl_python[] = {"pip", "python", "py", NULL},
|
||||
*pl_nodejs[] = {"npm", "node", "nodejs", "js", NULL},
|
||||
*pl_perl[] = {"perl", "cpan", NULL},
|
||||
*pl_php[] = {"php", "composer", NULL},
|
||||
*pl_cran[] = {"r", "cran", NULL},
|
||||
*pl_rust[] = {"rust", "cargo", "crate", "crates", NULL},
|
||||
*pl_go[] = {"go", "golang", "goproxy", NULL},
|
||||
*pl_dotnet[] = {"nuget","net", "dotnet", ".net", NULL},
|
||||
*pl_maven[] = {"maven", NULL},
|
||||
*pl_gradle[] = {"gradel",NULL},
|
||||
*pl_julia[] = {"julia", NULL},
|
||||
// Java暂时需要直接指定包管理器
|
||||
// pl_java
|
||||
**pl_packagers[] = {
|
||||
pl_ruby, pl_python, pl_nodejs, pl_perl, pl_php, pl_cran,
|
||||
pl_rust, pl_go, pl_dotnet, pl_maven, pl_gradle, pl_julia
|
||||
};
|
||||
#undef arg
|
||||
|
||||
static const char const*
|
||||
usage[] = {
|
||||
@ -100,6 +100,14 @@ usage[] = {
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
call_cmd (void* cmdptr, char* arg)
|
||||
{
|
||||
void (*cmd_func)(char*) = cmdptr;
|
||||
cmd_func(arg);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
print_help()
|
||||
{
|
||||
@ -116,19 +124,27 @@ main(int argc, char const *argv[])
|
||||
print_help(); return 0;
|
||||
}
|
||||
|
||||
int matched = 0;
|
||||
|
||||
for (int i=0; ARRAY_SIZE(pl_packagers); i++) {
|
||||
const char const** packager = pl_packagers[i];
|
||||
int k = 0;
|
||||
const char* alias = packager[k];
|
||||
while (NULL!=alias) {
|
||||
if (0==strcmp(argv[1], alias)) {
|
||||
printf("matched: %s\n", alias);
|
||||
} else {
|
||||
printf("not match: %s\n", alias);
|
||||
// printf("matched: %s\n", alias);
|
||||
matched = 1; break;
|
||||
}
|
||||
k++;
|
||||
alias = packager[k];
|
||||
}
|
||||
if (matched) {
|
||||
do {
|
||||
k++; alias = packager[k];
|
||||
} while (NULL!=alias);
|
||||
call_cmd ((void*) packager[k+1], "tuna");
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user