Lower version of rubygems doesn't have 'user_gemhome' env variable therefore there's a condition using different approach.
35 lines
1.4 KiB
Bash
Executable file
35 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
|
|
TEST_USER="rubyuser"
|
|
|
|
rlJournalStart
|
|
rlPhaseStartSetup
|
|
rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory"
|
|
rlRun "pushd $tmp"
|
|
rlRun "set -o pipefail"
|
|
id $TEST_USER && rlRun "userdel -r $TEST_USER"
|
|
rlRun "useradd $TEST_USER" 0 "Adding user '$TEST_USER' to the system"
|
|
rlRun "chown -R $TEST_USER:$TEST_USER $tmp" 0 "$TEST_USER can (un)install gems in $tmp"
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartTest
|
|
rlRun "su -c 'gem install byebug' $TEST_USER" 0 "Try to install byebug gem under $TEST_USER"
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartCleanup
|
|
|
|
rlLogInfo "Deleting installed files"
|
|
su -c 'set -o pipefail; gem env user_gemhome | xargs rm -rf' $TEST_USER || \
|
|
su -c 'set -o pipefail; gem env | grep "USER INSTALLATION DIRECTORY:" | awk '"'"'{print $5}'"'"' | xargs rm -rf' $TEST_USER
|
|
[ $? != 0 ] && rlFail "Deleting installed files wasn't successful"
|
|
|
|
# on RHEL temporary file cleanup unit tends to be started for $TEST_USER session and with that
|
|
# userdel fails because user process is running, so this is to workaround the problem
|
|
command -v loginctl >/dev/null && rlRun "loginctl terminate-user $TEST_USER" 0,1
|
|
rlRun "userdel -r $TEST_USER"
|
|
rlRun "popd"
|
|
rlRun "rm -r $tmp" 0 "Remove tmp directory"
|
|
rlPhaseEnd
|
|
rlJournalEnd
|