mirror of
https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git
synced 2025-12-14 19:02:45 +03:00
Move create_default_user to main phase
This commit is contained in:
parent
a042bf8cf1
commit
b4776260db
@ -46,6 +46,18 @@ replace_word() {
|
||||
done
|
||||
}
|
||||
|
||||
# usage: insert_after <where> <what> <list>...
|
||||
insert_before() {
|
||||
local search="$1" addition="$2"
|
||||
shift 2
|
||||
for i in "$@"; do
|
||||
if [ "$i" = "$search" ]; then
|
||||
echo "$addition"
|
||||
fi
|
||||
echo "$i"
|
||||
done
|
||||
}
|
||||
|
||||
# usage: insert_after <where> <what> <list>...
|
||||
insert_after() {
|
||||
local search="$1" addition="$2"
|
||||
|
||||
@ -15,13 +15,13 @@ DEFAULT_ACTIONS_BOOT="
|
||||
expand_root
|
||||
install_hotplugs
|
||||
set_default_interfaces
|
||||
create_default_user
|
||||
enable_sshd
|
||||
"
|
||||
DEFAULT_ACTIONS_EARLY="
|
||||
save_userdata
|
||||
"
|
||||
DEFAULT_ACTIONS_MAIN="
|
||||
create_default_user
|
||||
set_hostname
|
||||
set_ssh_keys
|
||||
"
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
# vim:set ft=sh:
|
||||
# shellcheck shell=sh
|
||||
|
||||
INIT_ACTIONS_MAIN="$(insert_before create_default_user userdata_user $INIT_ACTIONS_MAIN)"
|
||||
INIT_ACTIONS_MAIN="$(insert_after set_hostname \
|
||||
"userdata_bootcmd userdata_write_files userdata_ntp userdata_apk_cache userdata_apk_repositories userdata_package_update userdata_package_upgrade userdata_packages" \
|
||||
$INIT_ACTIONS_MAIN)"
|
||||
@ -13,6 +14,18 @@ get_userdata() {
|
||||
unset IFS
|
||||
}
|
||||
|
||||
init__userdata_user() {
|
||||
local name="$(get_userdata user/name)"
|
||||
if [ -z "$name" ]; then
|
||||
name="$(get_userdata user)"
|
||||
if [ -n "$(get_userdata user/$name)" ]; then
|
||||
log -s err "user/name is required"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
CLOUD_USER="${name:-$CLOUD_USER}"
|
||||
}
|
||||
|
||||
init__userdata_bootcmd() {
|
||||
# run bootcmd
|
||||
local bootcmds="$(get_userdata bootcmd)"
|
||||
|
||||
@ -12,6 +12,9 @@ lib="$srcdir"/lib/tiny-cloud/cloud/alpine/init
|
||||
init_tests \
|
||||
set_network_config_network_interfaces \
|
||||
set_network_config_auto \
|
||||
userdata_user_name \
|
||||
userdata_user_missing_name \
|
||||
userdata_create_default_user \
|
||||
userdata_bootcmd \
|
||||
userdata_write_files \
|
||||
userdata_ntp \
|
||||
@ -82,6 +85,43 @@ set_network_config_auto_body() {
|
||||
fi
|
||||
}
|
||||
|
||||
userdata_user_name_body() {
|
||||
fake_userdata_nocloud <<-EOF
|
||||
#alpine-config
|
||||
user:
|
||||
name: joeuser
|
||||
EOF
|
||||
atf_check -e ignore -o ignore tiny-cloud early
|
||||
atf_check \
|
||||
-e match:"create_default_user: done" \
|
||||
-o match:"adduser.*joeuser" \
|
||||
tiny-cloud main
|
||||
}
|
||||
|
||||
userdata_user_missing_name_body() {
|
||||
fake_userdata_nocloud <<-EOF
|
||||
#alpine-config
|
||||
user:
|
||||
gecos: Foo B. Baz
|
||||
EOF
|
||||
atf_check -e ignore -o ignore tiny-cloud early
|
||||
atf_check \
|
||||
-e match:"create_default_user: done" \
|
||||
-o not-match:"adduser.*gecos" \
|
||||
tiny-cloud main
|
||||
}
|
||||
|
||||
userdata_create_default_user_body() {
|
||||
fake_userdata_nocloud <<-EOF
|
||||
#alpine-config
|
||||
EOF
|
||||
atf_check -e ignore -o ignore tiny-cloud early
|
||||
atf_check \
|
||||
-e match:"create_default_user: done" \
|
||||
-o match:"adduser.*alpine" \
|
||||
tiny-cloud main
|
||||
}
|
||||
|
||||
userdata_bootcmd_body() {
|
||||
fake_userdata_nocloud <<-EOF
|
||||
#alpine-config
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user