save connection settings to rc-file

This commit is contained in:
Eric Belhomme 2022-08-30 08:13:19 +02:00
parent 9dbb9a99ba
commit 558698e10e
No known key found for this signature in database
GPG Key ID: BA98815EC8075476
2 changed files with 30 additions and 2 deletions

View File

@ -33,5 +33,10 @@ Usage is pretty straightforward, it is highly-recommended that you leave SSL ena
`passwd` interactively prompts for the new password and password expiration date.
`passwd` finally sends a prefilled ldapmodify to the server.
### `rcfile`
`rcfile` saves current directory connection settings (excepted `bindpass`) into a RC-file (stored into `${HOME}/.ipa/freeipa-sam.rc`)
If the file exists, variable are automatically read at script startup.
RC-file is also automatically written at normal exit (using `exit` command action)
PRs and issues welcome, but support cannot be promised.
Cheers!

View File

@ -1,10 +1,30 @@
#!/usr/bin/env bash
rcfile="${HOME}/.ipa/freeipa-sam.rc"
if [ -e "$rcfile" ]; then
source "$rcfile"
fi
ssleval=true
prefix=ldaps
passeval() { [ -z $bindpass ] && passeval="UNSET!" || passeval="SET!"; }
ssleval() { [ "$prefix" == "ldaps" ] && ssleval="true" || ssleval="false"; }
actionseval() { [ "$ldapserver" ] && [ "$binduser" ] && [ "$domain" ] && [ "$passeval" == "SET!" ] && actionseval="ready" || actionseval="conditions not yet met" && return 1; }
savercfile() {
test -d "${HOME}/.ipa" || mkdir -p "${HOME}/.ipa"
cat > "${HOME}/.ipa/freeipa-sam.rc" <<EOF
# freeipa-sam rc-file
ldapserver="$ldapserver"
binduser="$binduser"
domain="$domain"
ldapdomain="$ldapdomain"
ssleval=$ssleval
prefix="$prefix"
EOF
if [ -n "$1" ] && [ "$1" == 'exit' ]; then
exit
fi
}
menu() {
passeval
ssleval
@ -19,7 +39,7 @@ menu() {
5.) ssl=$ssleval
Actions ($actionseval):
add | rm | ls | info | passwd
add | rm | ls | info | passwd | rcfile
--- Results ---
$results
@ -110,8 +130,11 @@ userPassword: $password
replace: passwordExpirationTime
passwordExpirationTime: ${expire}031407Z" | ldapmodify -H "$prefix""://""$ldapserver" -D "$binduser" -w "$bindpass" && results="Submitted." || results="Error."
;;
rcfile)
savercfile
;;
exit)
exit
savercfile exit
;;
"")
results=""