@@ -71,6 +71,10 @@ CMDLINE_LINUX=""
71
71
BTRFS_SUBVOLUME_ROOT=()
72
72
BTRFS_SUBVOLUME_SWAP=()
73
73
74
+ # configuration variables declartion (no configuration, don't edit)
75
+ declare -A SYSTEMD_HOMED_STORAGE_LUKS
76
+ declare -A SYSTEMD_HOMED_STORAGE_CIFS
77
+
74
78
CONF_FILE=" alis.conf"
75
79
GLOBALS_FILE=" alis-globals.conf"
76
80
LOG_FILE=" alis.log"
@@ -98,6 +102,7 @@ function sanitize_variables() {
98
102
KERNELS_COMPRESSION=$( sanitize_variable " $KERNELS_COMPRESSION " )
99
103
KERNELS_PARAMETERS=$( sanitize_variable " $KERNELS_PARAMETERS " )
100
104
SYSTEMD_HOMED_STORAGE=$( sanitize_variable " $SYSTEMD_HOMED_STORAGE " )
105
+ SYSTEMD_HOMED_STORAGE_LUKS[" type" ]=$( sanitize_variable " ${SYSTEMD_HOMED_STORAGE_LUKS["type"]} " )
101
106
BOOTLOADER=$( sanitize_variable " $BOOTLOADER " )
102
107
CUSTOM_SHELL=$( sanitize_variable " $CUSTOM_SHELL " )
103
108
DESKTOP_ENVIRONMENT=$( sanitize_variable " $DESKTOP_ENVIRONMENT " )
@@ -182,15 +187,15 @@ function check_variables() {
182
187
check_variables_equals " ROOT_PASSWORD" " ROOT_PASSWORD_RETYPE" " $ROOT_PASSWORD " " $ROOT_PASSWORD_RETYPE "
183
188
check_variables_equals " USER_PASSWORD" " USER_PASSWORD_RETYPE" " $USER_PASSWORD " " $USER_PASSWORD_RETYPE "
184
189
check_variables_boolean " SYSTEMD_HOMED" " $SYSTEMD_HOMED "
190
+ check_variables_list " SYSTEMD_HOMED_STORAGE" " $SYSTEMD_HOMED_STORAGE " " auto luks subvolume directory fscrypt cifs" " true"
191
+ check_variables_list " SYSTEMD_HOMED_STORAGE_LUKS[\" type]\" " " ${SYSTEMD_HOMED_STORAGE_LUKS["type"]} " " auto ext4 btrfs xfs"
185
192
if [ " $SYSTEMD_HOMED " == " true" ]; then
186
- check_variables_list " SYSTEMD_HOMED_STORAGE" " $SYSTEMD_HOMED_STORAGE " " directory fscrypt luks cifs subvolume" " true"
187
-
188
193
if [ " $SYSTEMD_HOMED_STORAGE " == " fscrypt" ]; then
189
194
check_variables_list " FILE_SYSTEM_TYPE" " $FILE_SYSTEM_TYPE " " ext4 f2fs" " true"
190
195
fi
191
196
if [ " $SYSTEMD_HOMED_STORAGE " == " cifs" ]; then
192
- check_variables_value " SYSTEMD_HOMED_CIFS_DOMAIN " " $SYSTEMD_HOMED_CIFS_DOMAIN "
193
- check_variables_value " SYSTEMD_HOMED_CIFS_SERVICE " " $SYSTEMD_HOMED_CIFS_SERVICE "
197
+ check_variables_value " SYSTEMD_HOMED_CIFS[ \" domain] \" " " ${ SYSTEMD_HOMED_CIFS_DOMAIN["domain"]} "
198
+ check_variables_value " SYSTEMD_HOMED_CIFS[ \" service \" ] " " ${ SYSTEMD_HOMED_CIFS_SERVICE["size"]} "
194
199
fi
195
200
fi
196
201
check_variables_value " HOOKS" " $HOOKS "
@@ -1201,35 +1206,31 @@ function create_user_homectl() {
1201
1206
PASSWORD=$2
1202
1207
USERS_GROUPS=$3
1203
1208
STORAGE=" "
1209
+ IMAGE_PATH=" --image-path=/mnt/home/"
1210
+ FS_TYPE=" "
1204
1211
CIFS_DOMAIN=" "
1205
1212
CIFS_USERNAME=" "
1206
1213
CIFS_SERVICE=" "
1207
1214
TZ=$( echo ${TIMEZONE} | sed " s/\/usr\/share\/zoneinfo\///g" )
1208
1215
L=$( echo ${LOCALE_CONF[0]} | sed " s/LANG=//g" )
1209
- IMAGE_PATH=" /home/$USER .homedir"
1210
- HOME_PATH=" /home/$USER "
1211
1216
1212
- if [ -n " $SYSTEMD_HOMED_STORAGE " ]; then
1217
+ if [ " $SYSTEMD_HOMED_STORAGE " != " auto " ]; then
1213
1218
STORAGE=" --storage=$SYSTEMD_HOMED_STORAGE "
1214
1219
fi
1215
- if [ " $SYSTEMD_HOMED_STORAGE " == " cifs" ]; then
1216
- CIFS_DOMAIN=" --cifs-domain=$SYSTEMD_HOMED_CIFS_DOMAIN "
1217
- CIFS_USERNAME=" --cifs-user-name=$USER "
1218
- CIFS_SERVICE=" --cifs-service=$SYSTEMD_HOMED_CIFS_SERVICE "
1220
+ if [ " $SYSTEMD_HOMED_STORAGE " == " luks" -a " ${SYSTEMD_HOMED_STORAGE_LUKS["type"]} " != " auto" ]; then
1221
+ FS_TYPE=" --fs-type=${SYSTEMD_HOMED_STORAGE_LUKS["type"]} "
1219
1222
fi
1220
1223
if [ " $SYSTEMD_HOMED_STORAGE " == " luks" ]; then
1221
- IMAGE_PATH=" /home/$USER .home"
1224
+ IMAGE_PATH=" --image-path=/mnt/home/$USER .home"
1225
+ fi
1226
+ if [ " $SYSTEMD_HOMED_STORAGE " == " cifs" ]; then
1227
+ CIFS_DOMAIN=" --cifs-domain=${SYSTEMD_HOMED_CIFS_DOMAIN["domain"]} "
1228
+ CIFS_USERNAME=" --cifs-user-name=$USER "
1229
+ CIFS_SERVICE=" --cifs-service=${SYSTEMD_HOMED_CIFS_SERVICE["service"]} "
1222
1230
fi
1223
1231
1224
- # ## something missing, inside alis this not works, after install the user is in state infixated
1225
- # ## after install and reboot this commands work
1226
1232
systemctl start systemd-homed.service
1227
- set +e
1228
- homectl create $USER --enforce-password-policy=no --timezone=$TZ --language=$L $STORAGE $CIFS_DOMAIN $CIFS_USERNAME $CIFS_SERVICE -G " $USERS_GROUPS "
1229
- homectl activate $USER
1230
- set -e
1231
- cp -a " $IMAGE_PATH /." " /mnt$IMAGE_PATH "
1232
- cp -a " $HOME_PATH /." " /mnt$HOME_PATH "
1233
+ homectl create $USER --enforce-password-policy=no --timezone=$TZ --language=$L $STORAGE $IMAGE_PATH $FS_TYPE $CIFS_DOMAIN $CIFS_USERNAME $CIFS_SERVICE -G " $USERS_GROUPS "
1233
1234
cp -a " /var/lib/systemd/home/." " /mnt/var/lib/systemd/home/"
1234
1235
}
1235
1236
0 commit comments