parsed arguments

This commit is contained in:
bettercallous
2024-04-08 07:20:11 +00:00
parent 8aece78bb2
commit 2fdb0eb6c4
5 changed files with 79 additions and 1 deletions

22
Makefile Normal file
View File

@@ -0,0 +1,22 @@
NAME = ircserv
SRC = main.cpp Server.cpp
OBJ = ${SRC:.cpp=.o}
CXX = c++
CXXFLAGS = -std=c++98 -fsanitize=address -g3#-Wall -Wextra -Werror
all : $(NAME)
$(NAME) : $(OBJ)
$(CXX) $(CXXFLAGS) $(OBJ) -o $(NAME)
clean :
rm -rf *.o
fclean : clean
rm -rf $(NAME)
re : fclean all

View File

@@ -1 +0,0 @@
# IRC-Server

24
Server.cpp Normal file
View File

@@ -0,0 +1,24 @@
#include "Server.hpp"
Server::Server() {}
Server::~Server() {}
void Server::parseArgs(int ac, char **av) {
if (ac != 3)
throw std::runtime_error("Usage: ./ircserv <port> <password>");
std::string port(av[1]);
std::string pwd(av[2]);
if (port.empty() || port.find_first_not_of("0123456789") != std::string::npos)
throw std::runtime_error("Error: Invalid arguments");
long _port = atol(av[1]);
if (!(_port >= 1 && _port <= 65535))
throw std::runtime_error("Error: Invalid arguments");
if (pwd.empty())
throw std::runtime_error("Error: Invalid arguments");
this->_port = _port;
this->_password = pwd;
}

19
Server.hpp Normal file
View File

@@ -0,0 +1,19 @@
#ifndef SERVER_HPP
#define SERVER_HPP
#include <iostream>
#include <cstdlib>
class Server {
private:
int _port;
std::string _password;
public:
Server();
~Server();
void parseArgs(int ac, char **av);
};
#endif

14
main.cpp Normal file
View File

@@ -0,0 +1,14 @@
#include "Server.hpp"
int main(int ac, char **av)
{
Server server;
try {
server.parseArgs(ac, av);
} catch (std::exception& e) {
std::cerr << e.what() << std::endl;
return 1;
}
return 0;
}