#include <os/ArgumentParser.h>
#include <stdio.h>
#include <sys/mount.h>

Result<int> luna_main(int argc, char** argv)
{
    StringView target;
    StringView fstype { "auto" };
    StringView source;

    os::ArgumentParser parser;
    parser.add_description("Mount a file system.");
    parser.add_system_program_info("mount"_sv);
    parser.add_positional_argument(source, "source"_sv, true);
    parser.add_positional_argument(target, "mountpoint"_sv, true);
    parser.add_value_argument(fstype, 't', "type"_sv, "the file system type to use");
    parser.parse(argc, argv);

    if (mount(target.chars(), fstype.chars(), source.chars()) < 0)
    {
        perror("mount");
        return 1;
    }

    return 0;
}