marrakesh - add check and some more env vars

This commit is contained in:
Carsten Haitzler 2014-09-26 11:07:27 +09:00
parent b1b0ee5d6a
commit 3d791bd5ff
2 changed files with 75 additions and 9 deletions

View File

@ -15,3 +15,25 @@
#define M_ANS_START 31
#define M_ANS_DATA 32
#define M_ANS_END 33
#if defined(__x86_64__)
# define ARCH "x86_64"
#elif defined(__i386__)
# define ARCH "ix86"
#elif defined(__arm__)
# define ARCH "arm"
#elif defined(__ppc64__) || defined(__powerpc64__)
# define ARCH "ppc64"
#elif defined(__ppc__) || defined(__powerpc__)
# define ARCH "ppc"
#endif
#if defined(__linux__)
# define OS "linux"
#elif defined(__MACH__)
# define OS "osx"
#elif defined(__FreeBSD__)
# define OS "freebsd"
#elif defined(_WIN32) || defined(_WIN64)
# define OS "win"
#endif

62
mrk.c
View File

@ -105,6 +105,8 @@ static const char *sane_path_veto[] = {"../", "./", NULL};
static const char *sane_path_ok = "01234567890-_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ. ";
static char *server = "devs.enlightenment.org";
static int server_port = 10077;
static char *arch = ARCH;
static char *os = OS;
static void
err(char *msg)
@ -683,6 +685,8 @@ pakage_bin(void)
WRTS("devrepo", build.devrepo);
WRTS("contact", build.contact);
WRTS("needs", build.needs);
snprintf(tmp, sizeof(tmp), "%s-%s", os, arch);
WRTS("arch", tmp);
i = 0;
EINA_LIST_FOREACH(build.tags, l, s)
{
@ -1162,7 +1166,13 @@ _ipc2_cb_dat(void *data, int type, void *event)
char tmp[4096];
down_file = file;
snprintf(tmp, sizeof(tmp), "%s", down_file);
snprintf(tmp, sizeof(tmp),
"%s/Applications/.tmp",
getenv("HOME"));
ecore_file_mkpath(tmp);
snprintf(tmp, sizeof(tmp),
"%s/Applications/.tmp/%s",
getenv("HOME"), down_file);
if (ecore_file_exists(tmp))
err("file already exists");
down_f = fopen(file, "wb");
@ -1226,15 +1236,17 @@ main(int argc, char **argv)
" src\n"
" bin\n"
" extract FILE\n"
" install FILE\n"
" inst FILE\n"
" clean\n"
" remove PKGNAME\n"
" release [FILE]\n"
" down PKGNAME\n"
" get PKGNAME\n"
" rm PKGNAME\n"
" rel [FILE]\n"
" down PKGNAME\n"
" get PKGNAME\n"
// " list [CATEGORY]\n"
// " search KEY1 [KEY2] [KEY3] [...]\n"
// " new\n"
// " getsrc\n"
" check\n"
"\n");
return -1;
}
@ -1244,6 +1256,8 @@ main(int argc, char **argv)
if (getenv("MRKHOST")) server = getenv("MRKHOST");
if (getenv("MRKPORT")) server_port = atoi(getenv("MRKPORT"));
if (getenv("MRKARCH")) arch = getenv("MRKARCH");
if (getenv("MRKOS")) os = getenv("MRKOS");
if (!strcmp(argv[1], "build"))
{
@ -1265,7 +1279,7 @@ main(int argc, char **argv)
if (argc < 3) err("need file to extract");
if (!package_extract(argv[2])) return 1;
}
else if (!strcmp(argv[1], "install"))
else if (!strcmp(argv[1], "inst"))
{
if (argc < 3) err("need file to install");
package_clean();
@ -1275,13 +1289,13 @@ main(int argc, char **argv)
{
package_clean();
}
else if (!strcmp(argv[1], "remove"))
else if (!strcmp(argv[1], "rm"))
{
if (argc < 3) err("need package to remove");
if (!package_remove(argv[2])) return 1;
package_clean();
}
else if (!strcmp(argv[1], "release"))
else if (!strcmp(argv[1], "rel"))
{
char tmp[4096];
char *pk;
@ -1313,6 +1327,36 @@ main(int argc, char **argv)
if (!package_install(down_file)) return 1;
ecore_file_unlink(down_file);
}
else if (!strcmp(argv[1], "list"))
{
}
else if (!strcmp(argv[1], "search"))
{
}
else if (!strcmp(argv[1], "new"))
{
}
else if (!strcmp(argv[1], "getsrc"))
{
}
else if (!strcmp(argv[1], "check"))
{
char tmp[4096];
ecore_file_recursive_rm("Marrakesh-Check");
ecore_file_mkdir("Marrakesh-Check");
if (!parse_bld("Marrakesh.mrk")) err("Parse build failed");
if (!pakage_src("Marrakesh.mrk")) err("Source packaging failed");
chdir("Marrakesh-Check");
snprintf(tmp, sizeof(tmp), "../%s-%s.mks", build.name, build.version);
if (!package_extract(tmp)) err("Source extract failed");
memset(&build, 0, sizeof(Build));
if (!parse_bld("Marrakesh.mrk")) err("Parse build 2 from source failed");
if (!build_proj()) err("Build project failed");
memset(&build, 0, sizeof(Build));
if (!parse_bld("Marrakesh.mrk")) err("Parse build 3 failed");
if (!pakage_bin()) err("Package binary failed");
printf("OK\n");
}
else
{
err("unknown subcommand!");