oprava instalace setupu v main.c

This commit is contained in:
2026-07-13 19:56:20 +02:00
parent cb609213f2
commit cabc1e9ec7
+29 -16
View File
@@ -578,11 +578,12 @@ static void ensure_aliases_file(void) {
}
static int fs_ensure_dir(const char *path) {
int t = asterfs_get_type(path);
int t;
if (!path || path[0] == '\0') {
return -1;
}
t = asterfs_get_type(path);
if (t == 1) {
return 0;
}
@@ -593,11 +594,12 @@ static int fs_ensure_dir(const char *path) {
}
static int fs_ensure_file_text(const char *path, const char *text) {
int t = asterfs_get_type(path);
int t;
if (!path || !text || path[0] == '\0') {
return -1;
}
t = asterfs_get_type(path);
if (t == 1) {
return -1;
}
@@ -613,13 +615,6 @@ static int system_is_installed(void) {
}
static void cmd_setup_install(void) {
static const char *dirs[] = {
"/etc",
"/home",
"/bin",
"/var",
"/tmp"
};
static const char readme[] =
"AsterOS base install\n"
"--------------------\n"
@@ -637,7 +632,6 @@ static void cmd_setup_install(void) {
char setup_pass[AUTH_PASS_LEN];
char user_home[ASTERFS_NAME_LEN];
usize p = 0;
usize i;
aster_print("Setup: instalace systemu na AsterFS disk...\n");
@@ -661,16 +655,35 @@ static void cmd_setup_install(void) {
}
aster_memset(g_current_user, 0, sizeof(g_current_user));
aster_memcpy(g_current_user, setup_user, aster_strlen(setup_user));
p = aster_strlen(setup_user);
if (p >= sizeof(g_current_user)) {
p = sizeof(g_current_user) - 1;
}
aster_memcpy(g_current_user, setup_user, p);
for (i = 0; i < sizeof(dirs) / sizeof(dirs[0]); ++i) {
if (fs_ensure_dir(dirs[i]) != 0) {
printk("Setup error: nelze pripravit slozku %s\n", dirs[i]);
return;
}
if (fs_ensure_dir("/etc") != 0) {
print_error("Setup error: nelze pripravit slozku /etc");
return;
}
if (fs_ensure_dir("/home") != 0) {
print_error("Setup error: nelze pripravit slozku /home");
return;
}
if (fs_ensure_dir("/bin") != 0) {
print_error("Setup error: nelze pripravit slozku /bin");
return;
}
if (fs_ensure_dir("/var") != 0) {
print_error("Setup error: nelze pripravit slozku /var");
return;
}
if (fs_ensure_dir("/tmp") != 0) {
print_error("Setup error: nelze pripravit slozku /tmp");
return;
}
if (setup_user[0]) {
p = 0;
p = append_text(user_home, p, sizeof(user_home), "/home/");
p = append_text(user_home, p, sizeof(user_home), setup_user);
user_home[p] = '\0';