ropam: add sub-command to initialise a sysroot
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
file(GLOB_RECURSE sources *.c *.h)
|
||||
|
||||
add_executable(ropam ${sources})
|
||||
target_link_libraries(ropam Bluelib::Core Bluelib::Object Bluelib::Io Bluelib::Term Bluelib::Cmd)
|
||||
target_link_libraries(ropam
|
||||
libropkg
|
||||
Bluelib::Core Bluelib::Object Bluelib::Io Bluelib::Term Bluelib::Cmd)
|
||||
|
||||
60
ropam/bootstrap.c
Normal file
60
ropam/bootstrap.c
Normal file
@@ -0,0 +1,60 @@
|
||||
#include "commands.h"
|
||||
|
||||
#include <blue/cmd.h>
|
||||
#include <ropkg/instance.h>
|
||||
|
||||
enum {
|
||||
ARG_PATH,
|
||||
};
|
||||
|
||||
static int bootstrap(
|
||||
const b_command *self,
|
||||
const b_arglist *opt,
|
||||
const b_array *args)
|
||||
{
|
||||
const char *root_path = NULL;
|
||||
b_status status = b_arglist_get_string(
|
||||
opt,
|
||||
B_COMMAND_INVALID_ID,
|
||||
ARG_PATH,
|
||||
0,
|
||||
&root_path);
|
||||
if (!B_OK(status)) {
|
||||
b_arglist_report_missing_args(
|
||||
opt,
|
||||
B_COMMAND_INVALID_ID,
|
||||
ARG_PATH,
|
||||
0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
struct ropkg_instance *inst;
|
||||
b_result result = ropkg_instance_bootstrap(root_path, &inst);
|
||||
if (b_result_is_error(result)) {
|
||||
b_throw(result);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
B_COMMAND(CMD_BOOTSTRAP, CMD_ROOT)
|
||||
{
|
||||
B_COMMAND_NAME("bootstrap");
|
||||
B_COMMAND_DESC(
|
||||
"initialise a new Rosetta package manager instance. use this "
|
||||
"command to prepare a sysroot for the installation of Rosetta "
|
||||
"packages.");
|
||||
B_COMMAND_FLAGS(B_COMMAND_SHOW_HELP_BY_DEFAULT);
|
||||
B_COMMAND_FUNCTION(bootstrap);
|
||||
|
||||
B_COMMAND_ARG(ARG_PATH)
|
||||
{
|
||||
B_ARG_NAME("sysroot");
|
||||
B_ARG_DESC(
|
||||
"the path to the system root directory to initialise.");
|
||||
B_ARG_NR_VALUES(1);
|
||||
}
|
||||
|
||||
B_COMMAND_HELP_OPTION();
|
||||
}
|
||||
@@ -6,6 +6,7 @@ enum {
|
||||
CMD_SYNC,
|
||||
CMD_REMOVE,
|
||||
CMD_QUERY,
|
||||
CMD_BOOTSTRAP,
|
||||
|
||||
CMD_REPO,
|
||||
CMD_REPO_ADD,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#include "commands.h"
|
||||
|
||||
#include <blue/cmd.h>
|
||||
#include <blue/core/error.h>
|
||||
#include <blue/term/print.h>
|
||||
|
||||
B_COMMAND(CMD_ROOT, B_COMMAND_INVALID_ID)
|
||||
{
|
||||
@@ -28,5 +30,8 @@ B_COMMAND(CMD_ROOT, B_COMMAND_INVALID_ID)
|
||||
|
||||
int main(int argc, const char **argv)
|
||||
{
|
||||
b_set_error_report_function(
|
||||
b_enhanced_error_reporter,
|
||||
B_ERROR_REPORT_ALL);
|
||||
return b_command_dispatch(CMD_ROOT, argc, argv);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user