1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/samba_ynh.git synced 2024-09-03 20:16:27 +02:00

fix: replace broken old settings

This commit is contained in:
Hemi03 2024-03-26 19:15:31 +01:00
parent f76d08c70e
commit 5e074f2378

View file

@ -18,8 +18,8 @@ source /usr/share/yunohost/helpers
ynh_abort_if_errors ynh_abort_if_errors
datadir=$(ynh_app_setting_get --app=$app --key=datadir) data_dir=$(ynh_app_setting_get --app=$app --key=data_dir)
final_path=$(ynh_app_setting_get --app=$app --key=final_path) install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#================================================= #=================================================
# SPECIFIC GETTERS FOR TOML SHORT KEY # SPECIFIC GETTERS FOR TOML SHORT KEY
@ -51,7 +51,7 @@ get__unbrowseable() {
#================================================= #=================================================
set__directories() { set__directories() {
mkdir -p $final_path/smb.conf.d mkdir -p $install_dir/smb.conf.d
#--------------------------------------------- #---------------------------------------------
# IMPORTANT: setter are trigger only if a change is detected # IMPORTANT: setter are trigger only if a change is detected
@ -64,20 +64,20 @@ set__directories() {
fi fi
# Create the directory # Create the directory
mkdir -p $datadir/$directory mkdir -p $data_dir/$directory
chmod 750 "$datadir/$directory" chmod 750 "$data_dir/$directory"
chmod -R o-rwx "$datadir/$directory" chmod -R o-rwx "$data_dir/$directory"
chown -R root:root "$datadir/$directory" chown -R root:root "$data_dir/$directory"
setfacl -R -m g:samba.$directory:rwx,d:g:samba.$directory:rwx $datadir/$directory setfacl -R -m g:samba.$directory:rwx,d:g:samba.$directory:rwx $data_dir/$directory
# Add the configuration in /etc/samba/smb.conf if needed # Add the configuration in /etc/samba/smb.conf if needed
cat > $final_path/smb.conf.d/$directory.conf <<END cat > $install_dir/smb.conf.d/$directory.conf <<END
[$directory] [$directory]
comment = $directory comment = $directory
read only = no read only = no
path = $datadir/$directory path = $data_dir/$directory
guest ok = no guest ok = no
browsable = yes browsable = yes
valid users = @samba.$directory valid users = @samba.$directory
@ -92,23 +92,23 @@ END
done done
# Remove configuration for unlisted directories # Remove configuration for unlisted directories
pushd $final_path/smb.conf.d pushd $install_dir/smb.conf.d
for $directory in $(ls !(0-global).conf) for $directory in $(ls !(0-global).conf)
do do
if ! [[ "${directory%.conf}" =~ $(echo "^($(echo $directories | sed s/ /|/g))$") ]]; then if ! [[ "${directory%.conf}" =~ $(echo "^($(echo $directories | sed s/ /|/g))$") ]]; then
ynh_secure_remove "$final_path/smb.conf.d/" ynh_secure_remove "$install_dir/smb.conf.d/"
fi fi
done done
popd popd
cat > $final_path/smb.conf <<EOF cat > $install_dir/smb.conf <<EOF
# ================================================= # =================================================
# DO NOT EDIT THIS FILE # DO NOT EDIT THIS FILE
# EDIT SUBPARTS IN /etc/samba/smb.conf.d # EDIT SUBPARTS IN /etc/samba/smb.conf.d
# ================================================= # =================================================
EOF EOF
cat $final_path/smb.conf.d/*.conf >> $final_path/smb.conf cat $install_dir/smb.conf.d/*.conf >> $install_dir/smb.conf
#--------------------------------------------- #---------------------------------------------
# IMPORTANT: to be able to upgrade properly, you have to saved the value in settings too # IMPORTANT: to be able to upgrade properly, you have to saved the value in settings too
@ -123,7 +123,7 @@ set__readonly_dir() {
if [[ $directory =~ $(echo "^($(echo $readonly_dir | sed s/ /|/g))$") ]]; then if [[ $directory =~ $(echo "^($(echo $readonly_dir | sed s/ /|/g))$") ]]; then
value="yes" value="yes"
fi fi
ynh_write_var_in_file --file=$final_path/smb.conf.d/$directory.conf --key="read only" --value="$value" ynh_write_var_in_file --file=$install_dir/smb.conf.d/$directory.conf --key="read only" --value="$value"
done done
ynh_app_setting_set $app readonly_dir $readonly_dir ynh_app_setting_set $app readonly_dir $readonly_dir
} }
@ -135,7 +135,7 @@ set__unbrowseable() {
if [[ $directory =~ $(echo "^($(echo $unbrowseable | sed s/ /|/g))$") ]]; then if [[ $directory =~ $(echo "^($(echo $unbrowseable | sed s/ /|/g))$") ]]; then
value="no" value="no"
fi fi
ynh_write_var_in_file --file=$final_path/smb.conf.d/$directory.conf --key="browsable" --value="$value" ynh_write_var_in_file --file=$install_dir/smb.conf.d/$directory.conf --key="browsable" --value="$value"
done done
ynh_app_setting_set $app unbrowseable $unbrowseable ynh_app_setting_set $app unbrowseable $unbrowseable