Files
calypso/installer/alpha/scripts/filesystem.sh
2026-01-04 15:39:19 +07:00

61 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
#
# Filesystem structure setup
#
create_filesystem_structure() {
log_info "Creating filesystem structure..."
# Binary directory structure
log_info "Creating binary directory structure..."
mkdir -p "$INSTALL_PREFIX/releases/$CALYPSO_VERSION"/{bin,web,migrations,scripts}
mkdir -p "$INSTALL_PREFIX/third_party"
# Create symlink for current version
if [[ -L "$INSTALL_PREFIX/current" ]]; then
rm "$INSTALL_PREFIX/current"
fi
ln -sf "releases/$CALYPSO_VERSION" "$INSTALL_PREFIX/current"
# Configuration directory structure (per architecture spec)
log_info "Creating configuration directory structure..."
mkdir -p "$CONFIG_DIR"/{tls,integrations,system,scst,nfs,samba,clamav}
chmod 755 "$CONFIG_DIR"
chmod 700 "$CONFIG_DIR/tls" 2>/dev/null || true
# Data directory structure (per architecture spec: /srv/calypso/)
log_info "Creating data directory structure..."
mkdir -p "$DATA_DIR"/{db,backups,object,shares,vtl,iscsi,uploads,cache,_system,quarantine}
chown -R calypso:calypso "$DATA_DIR" 2>/dev/null || chown -R root:root "$DATA_DIR"
chmod 755 "$DATA_DIR"
# Create quarantine directory for ClamAV
mkdir -p "$DATA_DIR/quarantine"
chmod 700 "$DATA_DIR/quarantine"
# Log directory
log_info "Creating log directory..."
mkdir -p "$LOG_DIR"
chmod 755 "$LOG_DIR"
# Runtime directory
log_info "Creating runtime directory..."
mkdir -p "$LIB_DIR" "$RUN_DIR"
chmod 755 "$LIB_DIR"
chmod 755 "$RUN_DIR"
# Create calypso user if it doesn't exist
if ! id "calypso" &>/dev/null; then
log_info "Creating calypso user..."
useradd -r -s /bin/false -d "$LIB_DIR" -c "Calypso Appliance" calypso || true
fi
# Set ownership
chown -R calypso:calypso "$INSTALL_PREFIX" 2>/dev/null || chown -R root:root "$INSTALL_PREFIX"
chown -R calypso:calypso "$LIB_DIR" 2>/dev/null || chown -R root:root "$LIB_DIR"
chown -R calypso:calypso "$LOG_DIR" 2>/dev/null || chown -R root:root "$LOG_DIR"
log_info "✓ Filesystem structure created"
}