Merge pull request #6 from eric-belhomme/master

save connection settings to rc-file
This commit is contained in:
Noah Bliss 2023-04-25 15:10:12 +00:00 committed by GitHub
commit 671df16db3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 1 deletions

View File

@ -33,5 +33,11 @@ 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.
### `save`
`save` saves current directory connection settings (excepted `bindpass`) into an RC-file (`${HOME}/.ipa/freeipa-sam.rc`)
If the file exists, variable are automatically read at script startup, and updated in the file on script exit.
If the file does not exist when the script is started, nothing will be saved unless `save` is run manually.
PRs and issues welcome, but support cannot be promised.
Cheers!

View File

@ -1,10 +1,28 @@
#!/usr/bin/env bash
rcfile="${HOME}/.ipa/freeipa-sam.rc"
if [ -e "$rcfile" ]; then
source "$rcfile"
rcfile_on=true
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; }
save() {
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
}
menu() {
passeval
ssleval
@ -19,7 +37,7 @@ menu() {
5.) ssl=$ssleval
Actions ($actionseval):
add | rm | ls | info | passwd
add | rm | ls | info | passwd | save
--- Results ---
$results
@ -110,7 +128,11 @@ userPassword: $password
replace: passwordExpirationTime
passwordExpirationTime: ${expire}031407Z" | ldapmodify -H "$prefix""://""$ldapserver" -D "$binduser" -w "$bindpass" && results="Submitted." || results="Error."
;;
save)
save
;;
exit)
if [ $rcfile_on == "true" ]; then save; fi
exit
;;
"")