#!/bin/bash

# Script to create users from a file with home directories in /data/home
# Usage: ./tst.sh <filename>

# Check if filename is provided
if [ $# -ne 1 ]; then
    echo "Usage: $0 <filename>"
    echo "  filename: File containing user IDs (one per line)"
    exit 1
fi

INPUT_FILE="$1"

# Check if file exists
if [ ! -f "$INPUT_FILE" ]; then
    echo "Error: File '$INPUT_FILE' not found"
    exit 1
fi

# Check if running as root
if [ "$(id -u)" -ne 0 ]; then
    echo "Error: This script must be run as root (sudo)"
    exit 1
fi

# Create /data/home directory if it doesn't exist
if [ ! -d "/data/home" ]; then
    echo "Creating /data/home directory..."
    mkdir -p /data/home
fi

# Read file line by line and create users
while IFS= read -r userid || [ -n "$userid" ]; do
    
    # Skip empty lines and comments
    if [ -z "$userid" ] || [[ "$userid" =~ ^# ]]; then
        continue
    fi
    
    # Remove leading/trailing whitespace
    userid=$(echo "$userid" | xargs)
    
    # Check if user already exists
    if id "$userid" &>/dev/null; then
        echo "User '$userid' already exists, skipping..."
        continue
    fi
    
    # Create user with home directory in /data/home
    echo "Creating user: $userid"
    #useradd -m -d "/data/home/$userid" "$userid"
    # ./ADD_PUBKEY_TO_USER.sh "$userid"
    # setquota -u "$userid" 10G 10G 0 0 /data
    # echo "Setup zsh"
    # rm -rf /data/home/"$userid"/.oh-my-zsh
    # cp -r /data/oh-my-zsh/.oh-my-zsh /data/home/"$userid"/.oh-my-zsh
    # chown "$userid" -R /data/home/"$userid"/.oh-my-zsh/
    # chgrp "$userid" -R /data/home/"$userid"/.oh-my-zsh/
    # echo "Set default shell as zsh"
    # chsh -s /bin/zsh "$userid"

    if [ $? -eq 0 ]; then
        echo "  Successfully created user '$userid' with home directory /data/home/$userid"
    else
        echo "  Failed to create user '$userid'"
    fi
    
done < "$INPUT_FILE"

echo "Done!"
