#include "mkdir.h"
#include "unit-name.h"
#include "virt.h"
+#include "fileio.h"
static const char *arg_dest = "/tmp";
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 = strjoin(arg_dest,"/getty.target.wants/", tservice, NULL);
if (!from || !to) {
- log_error("Out of memory");
- r = -ENOMEM;
+ r = log_oom();
goto finish;
}
- mkdir_parents(to, 0755);
+ mkdir_parents_label(to, 0755);
r = symlink(from, to);
if (r < 0) {
log_debug("Automatically adding serial getty for /dev/%s.", tty);
n = unit_name_replace_instance("serial-getty@.service", tty);
- if (!n) {
- log_error("Out of memory");
- return -ENOMEM;
- }
+ if (!n)
+ return log_oom();
r = add_symlink("serial-getty@.service", n);
free(n);
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;
}
+ 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.");
/* Automatically add in a serial getty on the kernel
* console */
- if (tty_is_vc(tty))
+ if (isempty(tty) || tty_is_vc(tty))
free(active);
else {
int k;
int k;
if (asprintf(&p, "/sys/class/tty/%s", j) < 0) {
- log_error("Out of memory");
+ log_oom();
r = EXIT_FAILURE;
goto finish;
}