Imbunatatiri installer si rezolvare probleme configurare

- Adaugat optiunea --version pentru setarea versiunii in PATCHLEVEL
- Rezolvat eroarea regex bash cu grep/sed pentru compatibilitate
- Adaugat CPATH pentru calea corecta a configului (rezolva problema cu 'No such file')
- Imbunatatit HOST_HIDING cu HOST_HIDING_STYLE pentru ascunderea completa
- Modificat clasa Opers cu usermode +Wx pentru notificari WHOIS
- Adaugat WHOIS_NOTICE pentru notificari la operatori
- Actualizat documentatia cu noua optiune --version
Rezolva problemele:
1. Config parse error (CPATH setat corect)
2. Hostname-ul nu se ascunde (HOST_HIDING_STYLE)
3. Operatorii nu primesc +W (usermode +Wx in clasa Opers)
4. Lipsa notificari WHOIS (WHOIS_NOTICE activat)
This commit is contained in:
mihaiitdata 2026-02-13 14:09:43 +02:00
parent 2fdc9ad105
commit 7ac88d3f80
2 changed files with 70 additions and 16 deletions

View File

@ -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

View File

@ -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