mirror of
https://github.com/myvesta/vesta
synced 2025-08-21 13:54:28 -07:00
add user package
This commit is contained in:
parent
650c3f8507
commit
9a1fde8cb3
12 changed files with 470 additions and 11 deletions
|
@ -55,10 +55,10 @@ is_package_valid "$package"
|
|||
#----------------------------------------------------------#
|
||||
|
||||
# Parsing package data
|
||||
package_data=$(cat $VESTA/data/packages/$package.pkg)
|
||||
pkg_data=$(cat $VESTA/data/packages/$package.pkg |grep -v TIME |grep -v DATE)
|
||||
|
||||
# Checking shell
|
||||
shell_conf=$(echo "$package_data" | grep 'SHELL' | cut -f 2 -d \')
|
||||
shell_conf=$(echo "$pkg_data" | grep 'SHELL' | cut -f 2 -d \')
|
||||
shell=$(/usr/bin/chsh --list-shells | grep -w "$shell_conf" |head -n1)
|
||||
|
||||
# Adding user
|
||||
|
@ -98,7 +98,7 @@ chmod -R a+x $HOMEDIR/$user
|
|||
|
||||
# Checking quota
|
||||
if [ ! -z "$DISK_QUOTA" ] && [ "$DISK_QUOTA" != 'no' ]; then
|
||||
DISK_QUOTA=$(echo "$package_data" | grep 'DISK_QUOTA' | cut -f 2 -d \')
|
||||
DISK_QUOTA=$(echo "$pkg_data" | grep 'DISK_QUOTA' | cut -f 2 -d \')
|
||||
#$BIN/v_add_user_quota "$user" "$DISK_QUOTA"
|
||||
fi
|
||||
|
||||
|
@ -169,7 +169,7 @@ fi
|
|||
echo "FNAME='$fname'
|
||||
LNAME='$lname'
|
||||
PACKAGE='$package'
|
||||
$package_data
|
||||
$pkg_data
|
||||
CONTACT='$email'
|
||||
CRON_REPORTS='yes'
|
||||
MD5='$(awk -v user=$user -F : 'user == $1 {print $2}' /etc/shadow)'
|
||||
|
|
74
bin/v_add_user_package
Executable file
74
bin/v_add_user_package
Executable file
|
@ -0,0 +1,74 @@
|
|||
#!/bin/bash
|
||||
# info: adding user package
|
||||
# options: pkg_dir package [rewrite]
|
||||
#
|
||||
# The function adds new user package to the system.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variable&Function #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument defenition
|
||||
pkg_dir=$1
|
||||
package=$2
|
||||
rewrite=$3
|
||||
|
||||
# Includes
|
||||
source $VESTA/conf/vesta.conf
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Functions
|
||||
is_package_new() {
|
||||
if [ -e "$VESTA/data/packages/$package.pkg" ]; then
|
||||
echo "Error: package $package already exists."
|
||||
log_event "$E_EXISTS" "$EVENT"
|
||||
exit $E_EXISTS
|
||||
fi
|
||||
}
|
||||
|
||||
is_package_consistent() {
|
||||
source $pkg_dir/$package.pkg
|
||||
validate_format_int $WEB_DOMAINS
|
||||
validate_format_int $WEB_ALIASES
|
||||
validate_format_int $DNS_DOMAINS
|
||||
validate_format_int $DNS_RECORDS
|
||||
validate_format_int $MAIL_DOMAINS
|
||||
validate_format_int $MAIL_ACCOUNTS
|
||||
validate_format_int $DATABASES
|
||||
validate_format_int $CRON_JOBS
|
||||
validate_format_int $DISK_QUOTA
|
||||
validate_format_int $BACKUPS
|
||||
validate_format_shell $SHELL
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'pkg_dir package' 'rewrite'
|
||||
validate_format 'pkg_dir' 'package'
|
||||
if [ "$rewrite" != 'yes' ]; then
|
||||
is_package_new
|
||||
fi
|
||||
is_package_valid "$pkg_dir"
|
||||
is_package_consistent
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
cp -f $pkg_dir/$package.pkg $VESTA/data/packages/
|
||||
chmod 644 $VESTA/data/packages/$package.pkg
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Logging
|
||||
log_event "$OK" "$EVENT"
|
||||
|
||||
exit
|
|
@ -32,7 +32,8 @@ is_package_avalable() {
|
|||
DISK_QUOTA='0'
|
||||
BANDWIDTH='0'
|
||||
|
||||
pkg_data=$(cat $VESTA/data/packages/$package.pkg)
|
||||
pkg_data=$(cat $VESTA/data/packages/$package.pkg |grep -v TIME |\
|
||||
grep -v DATE)
|
||||
eval $pkg_data
|
||||
|
||||
# Comparing user data with package
|
||||
|
|
92
bin/v_list_user_package
Executable file
92
bin/v_list_user_package
Executable file
|
@ -0,0 +1,92 @@
|
|||
#!/bin/bash
|
||||
# info: list user package
|
||||
# options: package [format]
|
||||
#
|
||||
# The function for getting the list of system ip parameters.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variable&Function #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument defenition
|
||||
package=$1
|
||||
PACKAGE=$package
|
||||
format=${2-shell}
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_package() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
pkg_data=$(cat $VESTA/data/packages/$PACKAGE.pkg)
|
||||
echo '{'
|
||||
eval $pkg_data
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ $i -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $fileds_count -eq $i ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_package() {
|
||||
line=$(cat $VESTA/data/packages/$PACKAGE.pkg)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
if [ -z "$key" ]; then
|
||||
key='NULL'
|
||||
fi
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Checking args
|
||||
check_args '1' "$#" 'package [format]'
|
||||
validate_format 'package'
|
||||
is_package_valid
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
fields='$PACKAGE $TEMPLATE $WEB_DOMAINS $WEB_ALIASES $DNS_DOMAINS $DNS_RECORDS
|
||||
$MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES $CRON_JOBS $DISK_QUOTA $BANDWIDTH
|
||||
$NS $SHELL $BACKUPS $TIME $DATE'
|
||||
|
||||
# Listing ip
|
||||
case $format in
|
||||
json) json_list_package ;;
|
||||
plain) shell_list_package ;;
|
||||
shell) shell_list_package | column -t ;;
|
||||
*) check_args '1' '0' 'ip [format]'
|
||||
esac
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
exit
|
Loading…
Add table
Add a link
Reference in a new issue