Skip to content

Commit f7761fd

Browse files
committed
Add ability to differentiate group ownership from user ownership.
1 parent 94b131a commit f7761fd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+191
-185
lines changed

retropie_packages.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,13 @@ if [[ -n "$__user" ]]; then
2525
fi
2626
else
2727
user="$SUDO_USER"
28+
__user="$SUDO_USER"
2829
[[ -z "$user" ]] && user="$(id -un)"
30+
[[ -z "$__user" ]] && __user="$(id -un $SUDO_USER)"
31+
[[ -z "$__group" ]] && __group="$(id -gn $SUDO_USER)"
2932
fi
3033

31-
home="$(eval echo ~$user)"
34+
home="$(eval echo ~$__user)"
3235
datadir="$home/RetroPie"
3336
biosdir="$datadir/BIOS"
3437
romdir="$datadir/roms"
@@ -49,7 +52,7 @@ if [[ "$(id -u)" -ne 0 ]]; then
4952
exit 1
5053
fi
5154

52-
__backtitle="retropie.org.uk - RetroPie Setup. Installation folder: $rootdir for user $user"
55+
__backtitle="retropie.org.uk - RetroPie Setup. Installation folder: $rootdir for user $__user"
5356

5457
source "$scriptdir/scriptmodules/system.sh"
5558
source "$scriptdir/scriptmodules/helpers.sh"

scriptmodules/admin/apidocs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ function build_apidocs() {
4747

4848
function install_apidocs() {
4949
rsync -a --delete "$md_build/html/" "$__tmpdir/apidocs/"
50-
chown -R $user:$user "$__tmpdir/apidocs"
50+
chown -R "$__user":"$__group" "$__tmpdir/apidocs"
5151
}
5252

5353
function upload_apidocs() {

scriptmodules/admin/setup.sh

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function _setup_gzip_log() {
2020
function rps_logInit() {
2121
if [[ ! -d "$__logdir" ]]; then
2222
if mkdir -p "$__logdir"; then
23-
chown $user:$user "$__logdir"
23+
chown "$__user":"$__group" "$__logdir"
2424
else
2525
fatalError "Couldn't make directory $__logdir"
2626
fi
@@ -32,13 +32,13 @@ function rps_logInit() {
3232
local now=$(date +'%Y-%m-%d_%H%M%S')
3333
logfilename="$__logdir/rps_$now.log.gz"
3434
touch "$logfilename"
35-
chown $user:$user "$logfilename"
35+
chown "$__user":"$__group" "$logfilename"
3636
time_start=$(date +"%s")
3737
}
3838

3939
function rps_logStart() {
4040
echo -e "Log started at: $(date -d @$time_start)\n"
41-
echo "RetroPie-Setup version: $__version ($(sudo -u "$user" git -C "$scriptdir" log -1 --pretty=format:%h))"
41+
echo "RetroPie-Setup version: $__version ($(sudo -u "$__user" git -C "$scriptdir" log -1 --pretty=format:%h))"
4242
echo "System: $__platform ($__platform_arch) - $__os_desc - $(uname -a)"
4343
}
4444

@@ -95,8 +95,8 @@ function depends_setup() {
9595
if ! isPlatform "x11"; then
9696
local group
9797
for group in input video; do
98-
if ! hasFlag "$(groups $user)" "$group"; then
99-
dialog --yesno "Your user '$user' is not a member of the system group '$group'.\n\nThis is needed for RetroPie to function correctly. May I add '$user' to group '$group'?\n\nYou will need to restart for these changes to take effect." 22 76 2>&1 >/dev/tty && usermod -a -G "$group" "$user"
98+
if ! hasFlag "$(groups $__user)" "$group"; then
99+
dialog --yesno "Your user '$__user' is not a member of the system group '$group'.\n\nThis is needed for RetroPie to function correctly. May I add '$__user' to group '$group'?\n\nYou will need to restart for these changes to take effect." 22 76 2>&1 >/dev/tty && usermod -a -G "$group" "$__user"
100100
fi
101101
done
102102
fi
@@ -111,7 +111,7 @@ function depends_setup() {
111111
function updatescript_setup()
112112
{
113113
clear
114-
chown -R $user:$user "$scriptdir"
114+
chown -R "$__user":"$__group" "$scriptdir"
115115
printHeading "Fetching latest version of the RetroPie Setup Script."
116116
pushd "$scriptdir" >/dev/null
117117
if [[ ! -d ".git" ]]; then
@@ -120,7 +120,7 @@ function updatescript_setup()
120120
return 1
121121
fi
122122
local error
123-
if ! error=$(sudo -u "$user" git pull --ff-only 2>&1 >/dev/null); then
123+
if ! error=$(sudo -u "$__user" git pull --ff-only 2>&1 >/dev/null); then
124124
printMsgs "dialog" "Update failed:\n\n$error"
125125
popd >/dev/null
126126
return 1
@@ -680,7 +680,7 @@ function gui_setup() {
680680
depends_setup
681681
local default
682682
while true; do
683-
local commit=$(sudo -u "$user" git -C "$scriptdir" log -1 --pretty=format:"%cr (%h)")
683+
local commit=$(sudo -u "$__user" git -C "$scriptdir" log -1 --pretty=format:"%cr (%h)")
684684

685685
cmd=(dialog --backtitle "$__backtitle" --title "RetroPie-Setup Script" --cancel-label "Exit" --item-help --help-button --default-item "$default" --menu "Version: $__version - Last Commit: $commit\nSystem: $__platform ($__platform_arch) - running on $__os_desc" 22 76 16)
686686
options=(

scriptmodules/admin/stats.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ function build_stats() {
4242

4343
cp -rv "$md_data/licences" "$dest/"
4444
cp -rv "$md_data/pkgflags" "$dest/"
45-
chown -R $user:$user "$dest"
45+
chown -R "$__user":"$__group" "$dest"
4646
}
4747

4848
function upload_stats() {

scriptmodules/admin/wikidocs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ function build_wikidocs() {
2828

2929
function install_wikidocs() {
3030
rsync -a --delete "$md_build/site/" "$__tmpdir/wikidocs/"
31-
chown -R $user:$user "$__tmpdir/wikidocs"
31+
chown -R "$__user":"$__group" "$__tmpdir/wikidocs"
3232
}
3333

3434
function upload_wikidocs() {

scriptmodules/emulators/advmame.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ function configure_advmame() {
8989

9090
if [[ "$md_mode" == "install" && ! -f "$md_conf_root/mame-advmame/$md_id.rc" ]]; then
9191

92-
su "$user" -c "$md_inst/bin/advmame --default"
92+
su "$__user" -c "$md_inst/bin/advmame --default"
9393

9494
iniConfig " " "" "$md_conf_root/mame-advmame/$md_id.rc"
9595

scriptmodules/emulators/ags.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,6 @@ echo "ROM parameter for AGS engine: \$ROM" >> /dev/shm/runcommand.log
8484
$binary "${params[*]}" "\$ROM"
8585
_EOF_
8686

87-
chown "$user":"$user" "$launcher"
87+
chown "$__user":"$__group" "$launcher"
8888
chmod u+x "$launcher"
8989
}

scriptmodules/emulators/amiberry.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ function configure_amiberry() {
145145
fi
146146

147147
moveConfigDir "$md_inst/kickstarts" "$biosdir/amiga"
148-
chown -R $user:$user "$biosdir/amiga"
148+
chown -R "$__user":"$__group" "$biosdir/amiga"
149149

150150
# symlink the retroarch config / autoconfigs for amiberry to use
151151
ln -sf "$configdir/all/retroarch/autoconfig" "$md_inst/controllers"
@@ -159,7 +159,7 @@ function configure_amiberry() {
159159
# copy game-data, save-data folders, boot-data.zip and WHDLoad
160160
cp -R "$md_inst/whdboot-dist/"{game-data,save-data,boot-data.zip,WHDLoad} "$config_dir/whdboot/"
161161

162-
chown -R $user:$user "$config_dir/whdboot"
162+
chown -R "$__user":"$__group" "$config_dir/whdboot"
163163

164164
# copy shared uae4arm/amiberry launch script while setting is_amiberry=1
165165
sed "s/is_amiberry=0/is_amiberry=1/" "$md_data/../uae4arm/uae4arm.sh" >"$md_inst/amiberry.sh"
@@ -171,5 +171,5 @@ function configure_amiberry() {
171171
"$md_inst/amiberry.sh"
172172
_EOF_
173173
chmod a+x "$romdir/amiga/$script"
174-
chown $user:$user "$romdir/amiga/$script"
174+
chown "$__user":"$__group" "$romdir/amiga/$script"
175175
}

scriptmodules/emulators/daphne.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ fi
7979
_EOF_
8080
chmod +x "$md_inst/daphne.sh"
8181

82-
chown -R $user:$user "$md_inst"
83-
chown -R $user:$user "$md_conf_root/daphne/dapinput.ini"
82+
chown -R "$__user":"$__group" "$md_inst"
83+
chown -R "$__user":"$__group" "$md_conf_root/daphne/dapinput.ini"
8484

8585
}

scriptmodules/emulators/dgen.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ function configure_dgen() {
6464

6565
if [[ ! -f "$md_conf_root/megadrive/dgenrc" ]]; then
6666
cp "sample.dgenrc" "$md_conf_root/megadrive/dgenrc"
67-
chown $user:$user "$md_conf_root/megadrive/dgenrc"
67+
chown "$__user":"$__group" "$md_conf_root/megadrive/dgenrc"
6868
fi
6969

7070
iniConfig " = " "" "$md_conf_root/megadrive/dgenrc"

0 commit comments

Comments
 (0)