updated how copy_file
function works
This commit is contained in:
parent
ad951cc3a9
commit
8133f5698f
26 changed files with 46 additions and 44 deletions
9
home/.config/user-dirs.dirs
Normal file
9
home/.config/user-dirs.dirs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||||
|
# XDG_PUBLICSHARE_DIR="$HOME/Public"
|
||||||
|
# XDG_TEMPLATES_DIR="$HOME/Templates"
|
||||||
|
|
||||||
|
XDG_DOCUMENTS_DIR="/media/pomp/data/Documents"
|
||||||
|
XDG_DOWNLOAD_DIR="/media/pomp/data/Downloads"
|
||||||
|
XDG_MUSIC_DIR="/media/pomp/data/Music"
|
||||||
|
XDG_PICTURES_DIR="/media/pomp/data/Pictures"
|
||||||
|
XDG_VIDEOS_DIR="/media/pomp/data/Videos"
|
|
@ -0,0 +1,2 @@
|
||||||
|
[Context]
|
||||||
|
filesystems=home
|
|
@ -2,6 +2,8 @@
|
||||||
# this variable may be altered by the script
|
# this variable may be altered by the script
|
||||||
# most notably by `src/interface/choose_action.py`
|
# most notably by `src/interface/choose_action.py`
|
||||||
|
|
||||||
|
from os import environ
|
||||||
|
|
||||||
content_dir = "/tmp/com.developomp.setup"
|
content_dir = "/tmp/com.developomp.setup"
|
||||||
tmp_dir = content_dir
|
tmp_dir = content_dir
|
||||||
home_dir = "/home/pomp"
|
home_dir = environ.get("HOME")
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
from src.util import paru_install, copy_file
|
from src.util import paru_install, copy_file
|
||||||
from src.constants import content_dir, home_dir
|
|
||||||
|
|
||||||
name = "Alacritty terminal"
|
name = "Alacritty terminal"
|
||||||
|
|
||||||
|
@ -10,7 +9,4 @@ def setup() -> None:
|
||||||
paru_install("alacritty")
|
paru_install("alacritty")
|
||||||
|
|
||||||
# copy configuration file
|
# copy configuration file
|
||||||
copy_file(
|
copy_file("home/.config/alacritty/alacritty.yml")
|
||||||
f"{content_dir}{home_dir}/.config/alacritty/alacritty.yml",
|
|
||||||
"~/.config/alacritty/alacritty.yml",
|
|
||||||
)
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
from src.util import flatpak_install, paru_install, copy_file
|
from src.util import flatpak_install, paru_install, copy_file
|
||||||
from src.constants import content_dir, home_dir
|
|
||||||
from src import log
|
from src import log
|
||||||
from os import system
|
from os import system
|
||||||
|
|
||||||
|
@ -54,10 +53,7 @@ def setup():
|
||||||
flatpak_install("com.discordapp.Discord")
|
flatpak_install("com.discordapp.Discord")
|
||||||
paru_install("betterdiscordctl-git")
|
paru_install("betterdiscordctl-git")
|
||||||
|
|
||||||
copy_file(
|
copy_file("home/.config/autostart/discord.desktop")
|
||||||
f"{content_dir}{home_dir}/.config/autostart/discord.desktop",
|
|
||||||
"~/.config/autostart/discord.desktop",
|
|
||||||
)
|
|
||||||
|
|
||||||
for id in PLUGINS:
|
for id in PLUGINS:
|
||||||
url = f"https://betterdiscord.app/Download?id={id}"
|
url = f"https://betterdiscord.app/Download?id={id}"
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
from os.path import exists
|
from os.path import exists
|
||||||
from os import system
|
from os import system
|
||||||
|
|
||||||
from src.constants import content_dir, home_dir
|
|
||||||
from src.util import flatpak_install, paru_install, copy_file, silent_system
|
from src.util import flatpak_install, paru_install, copy_file, silent_system
|
||||||
from src.setup.system import system76_scheduler
|
from src.setup.system import system76_scheduler
|
||||||
|
|
||||||
|
@ -26,10 +25,7 @@ def setup():
|
||||||
paru_install("opentabletdriver-git")
|
paru_install("opentabletdriver-git")
|
||||||
|
|
||||||
# apply settings
|
# apply settings
|
||||||
copy_file(
|
copy_file("home/.config/OpenTabletDriver/settings.json")
|
||||||
f"{content_dir}{home_dir}/.config/OpenTabletDriver/settings.json",
|
|
||||||
"~/.config/OpenTabletDriver/settings.json",
|
|
||||||
)
|
|
||||||
|
|
||||||
# disable built-in kernel modules
|
# disable built-in kernel modules
|
||||||
modules_to_disable = [
|
modules_to_disable = [
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
from src.util import paru_install, copy_file
|
|
||||||
from src.constants import content_dir, home_dir
|
|
||||||
|
|
||||||
from os import system
|
from os import system
|
||||||
|
|
||||||
|
from src.util import paru_install, copy_file
|
||||||
|
|
||||||
|
|
||||||
name = "Vscodium"
|
name = "Vscodium"
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,19 +55,10 @@ def setup():
|
||||||
system(f"codium --install-extension {extension} --force")
|
system(f"codium --install-extension {extension} --force")
|
||||||
|
|
||||||
# autostart vscodium
|
# autostart vscodium
|
||||||
copy_file(
|
copy_file("home/.config/autostart/codium.desktop")
|
||||||
f"{content_dir}{home_dir}/.config/autostart/codium.desktop",
|
|
||||||
"~/.config/autostart/codium.desktop",
|
|
||||||
)
|
|
||||||
|
|
||||||
# vscodium settings
|
# vscodium settings
|
||||||
copy_file(
|
copy_file("home/.config/VSCodium/User/settings.json")
|
||||||
f"{content_dir}{home_dir}/.config/VSCodium/User/settings.json",
|
|
||||||
"~/.config/VSCodium/User/settings.json",
|
|
||||||
)
|
|
||||||
|
|
||||||
# enable vscode extension store
|
# enable vscode extension store
|
||||||
copy_file(
|
copy_file("home/.config/VSCodium/product.json")
|
||||||
f"{content_dir}{home_dir}/.config/VSCodium/product.json",
|
|
||||||
"~/.config/VSCodium/product.json",
|
|
||||||
)
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
from src.util import paru_install, copy_file
|
from src.util import paru_install, copy_file
|
||||||
from src.constants import content_dir
|
|
||||||
|
|
||||||
name = "system76 scheduler"
|
name = "system76 scheduler"
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ def setup():
|
||||||
# using the git version because "system76-scheduler" builds from source too anyway
|
# using the git version because "system76-scheduler" builds from source too anyway
|
||||||
paru_install("system76-scheduler-git")
|
paru_install("system76-scheduler-git")
|
||||||
copy_file(
|
copy_file(
|
||||||
f"{content_dir}/etc/system76-scheduler/assignments/osu.ron",
|
"etc/system76-scheduler/assignments/osu.ron",
|
||||||
"/etc/system76-scheduler/assignments/osu.ron",
|
|
||||||
sudo=True,
|
sudo=True,
|
||||||
)
|
)
|
||||||
|
|
|
@ -35,7 +35,7 @@ def setup():
|
||||||
)
|
)
|
||||||
|
|
||||||
# apply zshrc configuration
|
# apply zshrc configuration
|
||||||
copy_file(f"{content_dir}{home_dir}/.zshrc", f"{home_dir}/.zshrc")
|
copy_file("home/.zshrc")
|
||||||
|
|
||||||
# set the default terminal to zsh
|
# set the default terminal to zsh
|
||||||
system("chsh -s /bin/zsh")
|
system("chsh -s /bin/zsh")
|
||||||
|
|
29
src/util.py
29
src/util.py
|
@ -55,21 +55,32 @@ def remove_directory(path):
|
||||||
raise err
|
raise err
|
||||||
|
|
||||||
|
|
||||||
def copy_file(src: str, dst: str, mode="644", sudo=False):
|
def copy_file(src_file: str, mode="644", sudo=False):
|
||||||
"""
|
"""
|
||||||
Copies src to dst.
|
Copies a file in the repo to the system.
|
||||||
Automatically creates parent directory/directories of dst if it does not exist already.
|
If the `src_file` starts with `home/`, it maps to $HOME.
|
||||||
|
Otherwise, it maps to `/`.
|
||||||
|
This function automatically creates parent directories if they do not exist already.
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
src: A path-like object or string pointing to a file.
|
- src_file: A path-like object or string pointing to a file.
|
||||||
dst: A path-like object or string pointing to a file.
|
- mode: Permission mode (as in chmod). Defaults to 644 (rw-r--r--).
|
||||||
mode: Permission mode (as in chmod). Defaults to 644 (rw-r--r--)
|
- sudo: Whether to run command as sudo or not.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if sudo:
|
dst_file = str(src_file)
|
||||||
system(f"sudo install -Dm{mode} {src} {dst}")
|
|
||||||
|
if dst_file.startswith("home/"):
|
||||||
|
dst_file = src.constants.home_dir + dst_file[4:]
|
||||||
else:
|
else:
|
||||||
system(f"install -Dm{mode} {src} {dst}")
|
dst_file = "/" + dst_file
|
||||||
|
|
||||||
|
command = f"install -Dm{mode} {src.constants.content_dir}/{src_file} {dst_file}"
|
||||||
|
|
||||||
|
if sudo:
|
||||||
|
system(f"sudo {command}")
|
||||||
|
else:
|
||||||
|
system(command)
|
||||||
|
|
||||||
|
|
||||||
def copy_directory(src: str, dst: str):
|
def copy_directory(src: str, dst: str):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue