diff --git a/INSTALL_AUTO.md b/INSTALL_AUTO.md index f48947a..fd30d0e 100644 --- a/INSTALL_AUTO.md +++ b/INSTALL_AUTO.md @@ -80,7 +80,10 @@ Script-ul interactiv te va ghida prin: # Dezactivare SSL/TLS ./install.sh --no-ssl -# Combinație de opțiuni +# Setare versiune la build +./install.sh --version 1.0.3 + +# Combinatie de optiuni ./install.sh --prefix /opt/ircd --maxcon 16384 --debug ``` @@ -90,12 +93,13 @@ Script-ul interactiv te va ghida prin: Usage: ./install.sh [OPTIONS] OPTIONS: - -h, --help Afișează mesajul de ajutor + -h, --help Afiseaza mesajul de ajutor -p, --prefix PATH Calea de instalare (implicit: $HOME/ircd) - -m, --maxcon NUM Numărul maxim de conexiuni (implicit: 4096) - -d, --debug Activează modul de debug - -s, --no-ssl Dezactivează suportul SSL/TLS - -c, --config FILE Fișier de configurare inițial + -m, --maxcon NUM Numarul maxim de conexiuni (implicit: 4096) + -d, --debug Activeaza modul de debug + -s, --no-ssl Dezactiveaza suportul SSL/TLS + -c, --config FILE Fisier de configurare initial + -V, --version VER Seteaza versiunea in PATCHLEVEL (ex: 1.0.3) ``` ## 📁 Structura Directoarelor Post-Instalare diff --git a/install.sh b/install.sh index 30967bd..ca60159 100755 --- a/install.sh +++ b/install.sh @@ -20,6 +20,7 @@ ENABLE_SSL=1 MAXCON_SET=0 SERVER_PORT=4400 SSL_PORTS_DEFAULT="6697" +IRCD_VERSION="" # Validare numar pozitiv (doar cifre) is_positive_int() { @@ -137,22 +138,24 @@ expand_ports() { # Funcția de afișare a ajutorului show_help() { cat << EOF -${ALBASTRU}Script de instalare automată pentru UnderChat IRCd${NC} +${ALBASTRU}Script de instalare automata pentru UnderChat IRCd${NC} -Utilizare: ./install.sh [OPȚIUNI] +Utilizare: ./install.sh [OPTIUNI] -${GALBEN}OPȚIUNI:${NC} - -h, --help Afișează acest mesaj de ajutor +${GALBEN}OPTIUNI:${NC} + -h, --help Afiseaza acest mesaj de ajutor -p, --prefix PATH Calea de instalare (implicit: \$HOME/ircd) - -m, --maxcon NUM Numărul maxim de conexiuni (implicit: 4096) - -d, --debug Activează modul de debug - -s, --no-ssl Dezactivează suportul SSL/TLS - -c, --config FILE Fișier de configurare inițial + -m, --maxcon NUM Numarul maxim de conexiuni (implicit: 4096) + -d, --debug Activeaza modul de debug + -s, --no-ssl Dezactiveaza suportul SSL/TLS + -c, --config FILE Fisier de configurare initial + -V, --version VER Seteaza versiunea in PATCHLEVEL (ex: 1.0.3) ${GALBEN}EXEMPLE:${NC} ./install.sh ./install.sh --prefix /opt/ircd --maxcon 8192 ./install.sh --debug --config myconfig.conf + ./install.sh --version 1.0.3 EOF } @@ -332,6 +335,41 @@ fix_config_guess() { return 0 } +# Funcția de setare versiune in PATCHLEVEL +set_patchlevel_version() { + local version="$1" + local patchlevel_file="./include/patchlevel.h" + + if [ -z "$version" ]; then + return 0 + fi + + if [ ! -f "$patchlevel_file" ]; then + log_warn "Fisierul $patchlevel_file nu exista, sar peste setarea versiunii" + return 0 + fi + + local current + current=$(grep -E '^#define PATCHLEVEL ' "$patchlevel_file" | sed -E 's/^#define PATCHLEVEL "([^"]+)".*/\1/') + + if [ -z "$current" ]; then + log_warn "Nu pot determina PATCHLEVEL curent, sar peste setarea versiunii" + return 0 + fi + + local new_patchlevel + if echo "$current" | grep -q '(.*)'; then + # Extract prefix before parentheses + local prefix=$(echo "$current" | sed -E 's/^(.*)\([^)]*\)$/\1/') + new_patchlevel="${prefix}(${version})" + else + new_patchlevel="UnderChat(${version})" + fi + + sed -i "s|^#define PATCHLEVEL \".*\"|#define PATCHLEVEL \"$new_patchlevel\"|" "$patchlevel_file" + log_success "Versiune setata in PATCHLEVEL: $new_patchlevel" +} + # Funcția de configurare configure_ircd() { log_info "Configurare UnderChat IRCd..." @@ -573,7 +611,7 @@ Class { show_invis = yes; see_chan = yes; list_chan = yes; - usermode = "+W"; + usermode = "+Wx"; remove = yes; }; @@ -686,6 +724,7 @@ features { "HOST_HIDING" = "TRUE"; "HIDDEN_HOST" = "users.EOFCONFIG_NETWORK"; "HIDDEN_IP" = "127.0.0.1"; + "HOST_HIDING_STYLE" = "1"; # Channels "MAXCHANNELSPERUSER" = "60"; @@ -707,6 +746,7 @@ features { "MPATH" = "EOFCONFIG_PREFIX/etc/ircd.motd"; "RPATH" = "EOFCONFIG_PREFIX/etc/remote.motd"; "PPATH" = "EOFCONFIG_PREFIX/var/ircd.pid"; + "CPATH" = "EOFCONFIG_PREFIX/etc/ircd.conf"; # Stats visibility "HIS_STATS_u" = "FALSE"; @@ -746,6 +786,9 @@ features { # CTCP versioning "CTCP_VERSIONING" = "FALSE"; + + # WHOIS notifications for operators + "WHOIS_NOTICE" = "TRUE"; }; EOFCONFIG @@ -826,8 +869,12 @@ main() { CONFIG_FILE="$2" shift 2 ;; + -V|--version) + IRCD_VERSION="$2" + shift 2 + ;; *) - log_error "Opțiune necunoscută: $1" + log_error "Optiune necunoscuta: $1" show_help exit 1 ;; @@ -862,6 +909,9 @@ main() { exit 1 fi + # Setare versiune (optional) + set_patchlevel_version "$IRCD_VERSION" + # Configurare configure_ircd if [ $? -ne 0 ]; then