40 lines
1.5 KiB
C
40 lines
1.5 KiB
C
/*
|
|
* OmniNX Installer - Installation Logic
|
|
*/
|
|
|
|
#pragma once
|
|
#include "version.h"
|
|
#include <utils/types.h>
|
|
#include <stddef.h>
|
|
|
|
// Installation modes
|
|
typedef enum {
|
|
INSTALL_MODE_UPDATE, // OmniNX detected - selective deletion
|
|
INSTALL_MODE_CLEAN // No OmniNX - selective deletion from clean list
|
|
} install_mode_t;
|
|
|
|
// Main installation function
|
|
int perform_installation(omninx_variant_t pack_variant, install_mode_t mode);
|
|
|
|
// Update mode operations (install_update.c)
|
|
int update_mode_cleanup(omninx_variant_t variant);
|
|
int update_mode_install(omninx_variant_t variant);
|
|
int cleanup_staging_directory(omninx_variant_t pack_variant);
|
|
|
|
// Clean install operations (install_clean.c)
|
|
int clean_mode_backup(void);
|
|
int clean_mode_wipe(void);
|
|
int clean_mode_restore(void);
|
|
int clean_mode_install(omninx_variant_t variant);
|
|
|
|
// Shared helpers (install.c) - used by install_update.c and install_clean.c
|
|
void install_set_color(u32 color);
|
|
void install_check_and_clear_screen_if_needed(void);
|
|
bool install_path_exists(const char *path);
|
|
int install_count_directory_items(const char *path);
|
|
void install_combine_path(char *result, size_t size, const char *base, const char *add);
|
|
int delete_path_list(const char* paths[], const char* description);
|
|
int folder_delete_single_with_progress(const char *path, const char *display_name);
|
|
int folder_delete_progress_recursive(const char *path, int *deleted, int total, u32 start_x, u32 start_y, const char *display_name, int *last_percent);
|
|
int folder_copy_with_progress_v2(const char *src, const char *dst, const char *display_name);
|