X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fgetty-generator%2Fgetty-generator.c;h=bb7c225e0267f0f70668da04a25fc01b7beb3dac;hb=205c4d1d6a3f5343f970abf20283d69dcec359ed;hp=58ad8a66358e4b8a5d2cefc2d2e3d9321c8d19be;hpb=dce818b390a857a11f7dd634684500675cf79833;p=elogind.git diff --git a/src/getty-generator/getty-generator.c b/src/getty-generator/getty-generator.c index 58ad8a663..bb7c225e0 100644 --- a/src/getty-generator/getty-generator.c +++ b/src/getty-generator/getty-generator.c @@ -38,8 +38,8 @@ static int add_symlink(const char *fservice, const char *tservice) { assert(fservice); assert(tservice); - asprintf(&from, SYSTEM_DATA_UNIT_PATH "/%s", fservice); - asprintf(&to, "%s/getty.target.wants/%s", arg_dest, tservice); + from = strappend(SYSTEM_DATA_UNIT_PATH "/", fservice); + to = join(arg_dest,"/getty.target.wants/", tservice, NULL); if (!from || !to) { log_error("Out of memory"); @@ -47,7 +47,7 @@ static int add_symlink(const char *fservice, const char *tservice) { goto finish; } - mkdir_parents(to, 0755); + mkdir_parents_label(to, 0755); r = symlink(from, to); if (r < 0) { @@ -99,24 +99,24 @@ int main(int argc, char *argv[]) { char *active; const char *j; - if (argc > 2) { - log_error("This program takes one or no arguments."); + if (argc > 1 && argc != 4) { + log_error("This program takes three or no arguments."); return EXIT_FAILURE; } - log_set_target(LOG_TARGET_AUTO); + if (argc > 1) + arg_dest = argv[1]; + + log_set_target(LOG_TARGET_SAFE); log_parse_environment(); log_open(); umask(0022); - if (argc > 1) - arg_dest = argv[1]; - if (detect_container(NULL) > 0) { log_debug("Automatically adding console shell."); - if (add_symlink("console-shell.service", "console-shell.service") < 0) + if (add_symlink("console-getty.service", "console-getty.service") < 0) r = EXIT_FAILURE; /* Don't add any further magic if we are in a container */