mirror of
https://github.com/gaschz/dotfiles.git
synced 2025-03-01 14:22:33 +01:00
fix: discover non-root username at runtime
Useful when Dom0 has the non-default username, less useful for DomUs. Fixes: https://github.com/ben-grande/qusal/issues/43
This commit is contained in:
parent
9954972df3
commit
84bae87dc5
@ -41,8 +41,11 @@ Configuration and scripts targeting:
|
||||
|
||||
### Salt
|
||||
|
||||
The formula was designed to be run in Qubes OS, the normal user name is
|
||||
hardcoded to `user` and its home is hardcoded to `/home/user`.
|
||||
The formula is part of [Qusal](https://github.com/ben-grande/qusal/issues/43),
|
||||
which is designed to work in [Qubes OS](https://www.qubes-os.org/), as such,
|
||||
it chooses the first user name in the group `qubes` to place the dotfiles in.
|
||||
If you want a machine independent installation, choose the [Script](#script)
|
||||
installation method.
|
||||
|
||||
Install everything in a qube:
|
||||
```sh
|
||||
@ -60,6 +63,7 @@ You can simply deploy all configurations with:
|
||||
```sh
|
||||
./files/setup.sh
|
||||
```
|
||||
|
||||
Or target specific ones by specifying the directory name:
|
||||
```sh
|
||||
./files/setup.sh sh bash
|
||||
|
11
copy-all.sls
11
copy-all.sls
@ -23,6 +23,9 @@ Best option is 'file.managed mode: keep' or 'file.recurse file_mode: keep'.
|
||||
https://docs.saltproject.io/en/latest/ref/states/all/salt.states.file.html
|
||||
#}
|
||||
{#
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-absent-dotfiles-client":
|
||||
file.absent:
|
||||
- name: /tmp/dotfiles
|
||||
@ -33,17 +36,17 @@ https://docs.saltproject.io/en/latest/ref/states/all/salt.states.file.html
|
||||
- name: /tmp/dotfiles
|
||||
- file_mode: '0644'
|
||||
- dir_mode: '0700'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
|
||||
"{{ slsdotpath }}-apply-dotfiles-client":
|
||||
cmd.run:
|
||||
- name: sh /tmp/dotfiles/setup.sh
|
||||
- runas: user
|
||||
- runas: {{ gui_user.gui_user }}
|
||||
|
||||
"{{ slsdotpath }}-fix-executables-permission":
|
||||
file.directory:
|
||||
- name: /home/user/.local/bin
|
||||
- name: {{ gui_user.gui_user_home }}/.local/bin
|
||||
- mode: '0755'
|
||||
- recurse:
|
||||
- mode
|
||||
|
@ -1,17 +1,19 @@
|
||||
{#
|
||||
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-dom0-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}
|
||||
- source: salt://{{ slsdotpath }}/files/dom0/
|
||||
- file_mode: '0644'
|
||||
- dir_mode: '0755'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
- makedirs: True
|
||||
|
||||
"{{ slsdotpath }}-copy-dom0-skel":
|
||||
|
18
copy-git.sls
18
copy-git.sls
@ -4,32 +4,34 @@ SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-git-home":
|
||||
file.recurse:
|
||||
- name: /home/user
|
||||
- name: {{ gui_user.gui_user_home }}
|
||||
- source: salt://{{ slsdotpath }}/files/git
|
||||
- file_mode: '0644'
|
||||
- dir_mode: '0700'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
|
||||
"{{ slsdotpath }}-fix-executables-git-template-dir-home":
|
||||
file.directory:
|
||||
- name: /home/user/.config/git/template/hooks
|
||||
- name: {{ gui_user.gui_user_home }}/.config/git/template/hooks
|
||||
- mode: '0755'
|
||||
- recurse:
|
||||
- mode
|
||||
|
||||
"{{ slsdotpath }}-fix-executables-git-shell-dir-home":
|
||||
file.directory:
|
||||
- name: /home/user/.config/git/shell
|
||||
- name: {{ gui_user.gui_user_home }}/.config/git/shell
|
||||
- mode: '0755'
|
||||
- recurse:
|
||||
- mode
|
||||
|
||||
"{{ slsdotpath }}-fix-executables-git-bin-dir-home":
|
||||
file.directory:
|
||||
- name: /home/user/.local/bin
|
||||
- name: {{ gui_user.gui_user_home }}/.local/bin
|
||||
- mode: '0755'
|
||||
- recurse:
|
||||
- mode
|
||||
@ -52,14 +54,14 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
"{{ slsdotpath }}-fix-executables-git-shell-dir-skel":
|
||||
file.directory:
|
||||
- name: /home/user/.config/git/shell
|
||||
- name: {{ gui_user.gui_user_home }}/.config/git/shell
|
||||
- mode: '0755'
|
||||
- recurse:
|
||||
- mode
|
||||
|
||||
"{{ slsdotpath }}-fix-executables-git-bin-dir-skel":
|
||||
file.directory:
|
||||
- name: /home/user/.local/bin
|
||||
- name: {{ gui_user.gui_user_home }}/.local/bin
|
||||
- mode: '0755'
|
||||
- recurse:
|
||||
- mode
|
||||
|
@ -4,14 +4,16 @@ SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-gtk-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}/
|
||||
- source: salt://{{ slsdotpath }}/files/gtk/
|
||||
- file_mode: '0644'
|
||||
- dir_mode: '0700'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
|
||||
"{{ slsdotpath }}-copy-gtk-skel":
|
||||
file.recurse:
|
||||
|
@ -4,14 +4,16 @@ SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-mutt-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}/
|
||||
- source: salt://{{ slsdotpath }}/files/mutt/
|
||||
- file_mode: '0644'
|
||||
- dir_mode: '0755'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
- makedirs: True
|
||||
|
||||
"{{ slsdotpath }}-copy-mutt-skel":
|
||||
|
@ -4,14 +4,16 @@ SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-net-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}/
|
||||
- source: salt://{{ slsdotpath }}/files/net/
|
||||
- file_mode: '0644'
|
||||
- dir_mode: '0700'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
- keep_symlinks: True
|
||||
- force_symlinks: True
|
||||
|
||||
|
@ -4,14 +4,16 @@ SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-pgp-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}/
|
||||
- source: salt://{{ slsdotpath }}/files/pgp/
|
||||
- file_mode: '0600'
|
||||
- dir_mode: '0700'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
|
||||
"{{ slsdotpath }}-copy-pgp-skel":
|
||||
file.recurse:
|
||||
|
10
copy-sh.sls
10
copy-sh.sls
@ -4,20 +4,22 @@ SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-sh-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}/
|
||||
- source: salt://{{ slsdotpath }}/files/sh
|
||||
- file_mode: '0644'
|
||||
- dir_mode: '0700'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
- keep_symlinks: True
|
||||
- force_symlinks: True
|
||||
|
||||
"{{ slsdotpath }}-fix-executables-sh-dir-home":
|
||||
file.directory:
|
||||
- name: /home/user/.local/bin
|
||||
- name: {{ gui_user.gui_user_home }}/.local/bin
|
||||
- file_mode: '0755'
|
||||
- dir_mode: '0755'
|
||||
- recurse:
|
||||
|
@ -4,14 +4,16 @@ SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-ssh-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}/
|
||||
- source: salt://{{ slsdotpath }}/files/ssh/
|
||||
- file_mode: '0600'
|
||||
- dir_mode: '0700'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
- backup: minion
|
||||
|
||||
"{{ slsdotpath }}-copy-ssh-skel":
|
||||
|
@ -4,18 +4,20 @@ SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-tmux-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}/
|
||||
- source: salt://{{ slsdotpath }}/files/tmux/
|
||||
- file_mode: '0644'
|
||||
- dir_mode: '0700'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
|
||||
"{{ slsdotpath }}-fix-executables-tmux-home":
|
||||
file.directory:
|
||||
- name: /home/user/.local/bin
|
||||
- name: {{ gui_user.gui_user_home }}/.local/bin
|
||||
- mode: '0755'
|
||||
- recurse:
|
||||
- mode
|
||||
@ -31,7 +33,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
"{{ slsdotpath }}-fix-executables-tmux-skel":
|
||||
file.directory:
|
||||
- name: /home/user/.local/bin
|
||||
- name: {{ gui_user.gui_user_home }}/.local/bin
|
||||
- mode: '0755'
|
||||
- recurse:
|
||||
- mode
|
||||
|
@ -4,14 +4,16 @@ SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-vim-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}/
|
||||
- source: salt://{{ slsdotpath }}/files/vim/
|
||||
- file_mode: '0644'
|
||||
- dir_mode: '0700'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
|
||||
"{{ slsdotpath }}-copy-vim-skel":
|
||||
file.recurse:
|
||||
|
@ -4,14 +4,16 @@ SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-x11-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}/
|
||||
- source: salt://{{ slsdotpath }}/files/x11
|
||||
- file_mode: '0755'
|
||||
- dir_mode: '0755'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
- keep_symlinks: True
|
||||
- force_symlinks: True
|
||||
|
||||
|
@ -4,14 +4,16 @@ SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#}
|
||||
|
||||
{%- import "dom0/gui-user.jinja" as gui_user -%}
|
||||
|
||||
"{{ slsdotpath }}-copy-xfce-home":
|
||||
file.recurse:
|
||||
- name: /home/user/
|
||||
- name: {{ gui_user.gui_user_home }}/
|
||||
- source: salt://{{ slsdotpath }}/files/xfce/
|
||||
- file_mode: '0644'
|
||||
- dir_mode: '0700'
|
||||
- user: user
|
||||
- group: user
|
||||
- user: {{ gui_user.gui_user }}
|
||||
- group: {{ gui_user.gui_user }}
|
||||
- keep_symlinks: True
|
||||
- force_symlinks: True
|
||||
|
||||
|
@ -23,12 +23,14 @@ test -f ./setup.sh || { echo "File doesn't exist: './setup.sh'"; exit 1; }
|
||||
|
||||
if test "$vm" = "dom0"; then
|
||||
sh ./dotfiles/setup.sh
|
||||
sudo -u user mkdir -pv /home/user/.cache
|
||||
tmpdir="$(sudo -u user mktemp -d /home/user/.cache/XXXXXX)"
|
||||
user_name="$(getent group qubes | awk -F "[:,]" '{print $4}')"
|
||||
user_home="$(getent passwd "${user_name}" | awk -F ":" '{print $6}')"
|
||||
sudo -u "${user_name}" mkdir -pv "${user_home}/.cache"
|
||||
tmpdir="$(sudo -u "${user_name}" mktemp -d "${user_home}/.cache/XXXXXX")"
|
||||
trap 'rm -rf -- "$tmpdir"' EXIT INT HUP QUIT ABRT
|
||||
cp -r ./dotfiles "$tmpdir"
|
||||
chown -R user:user "$tmpdir"
|
||||
sudo -u user "$tmpdir/dotfiles/setup.sh"
|
||||
chown -R "${user_name}:${user_name}" "$tmpdir"
|
||||
sudo -u "${user_name}" "$tmpdir/dotfiles/setup.sh"
|
||||
exit
|
||||
fi
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user