1
0
Fork 0

updated how copy_file function works

This commit is contained in:
Kim, Jimin 2022-05-22 18:05:30 +09:00
parent ad951cc3a9
commit 8133f5698f
26 changed files with 46 additions and 44 deletions

View 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"

View file

@ -0,0 +1,2 @@
[Context]
filesystems=home

View file

@ -2,6 +2,8 @@
# this variable may be altered by the script
# most notably by `src/interface/choose_action.py`
from os import environ
content_dir = "/tmp/com.developomp.setup"
tmp_dir = content_dir
home_dir = "/home/pomp"
home_dir = environ.get("HOME")

View file

@ -1,5 +1,4 @@
from src.util import paru_install, copy_file
from src.constants import content_dir, home_dir
name = "Alacritty terminal"
@ -10,7 +9,4 @@ def setup() -> None:
paru_install("alacritty")
# copy configuration file
copy_file(
f"{content_dir}{home_dir}/.config/alacritty/alacritty.yml",
"~/.config/alacritty/alacritty.yml",
)
copy_file("home/.config/alacritty/alacritty.yml")

View file

@ -1,5 +1,4 @@
from src.util import flatpak_install, paru_install, copy_file
from src.constants import content_dir, home_dir
from src import log
from os import system
@ -54,10 +53,7 @@ def setup():
flatpak_install("com.discordapp.Discord")
paru_install("betterdiscordctl-git")
copy_file(
f"{content_dir}{home_dir}/.config/autostart/discord.desktop",
"~/.config/autostart/discord.desktop",
)
copy_file("home/.config/autostart/discord.desktop")
for id in PLUGINS:
url = f"https://betterdiscord.app/Download?id={id}"

View file

@ -1,7 +1,6 @@
from os.path import exists
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.setup.system import system76_scheduler
@ -26,10 +25,7 @@ def setup():
paru_install("opentabletdriver-git")
# apply settings
copy_file(
f"{content_dir}{home_dir}/.config/OpenTabletDriver/settings.json",
"~/.config/OpenTabletDriver/settings.json",
)
copy_file("home/.config/OpenTabletDriver/settings.json")
# disable built-in kernel modules
modules_to_disable = [

View file

@ -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 src.util import paru_install, copy_file
name = "Vscodium"
@ -55,19 +55,10 @@ def setup():
system(f"codium --install-extension {extension} --force")
# autostart vscodium
copy_file(
f"{content_dir}{home_dir}/.config/autostart/codium.desktop",
"~/.config/autostart/codium.desktop",
)
copy_file("home/.config/autostart/codium.desktop")
# vscodium settings
copy_file(
f"{content_dir}{home_dir}/.config/VSCodium/User/settings.json",
"~/.config/VSCodium/User/settings.json",
)
copy_file("home/.config/VSCodium/User/settings.json")
# enable vscode extension store
copy_file(
f"{content_dir}{home_dir}/.config/VSCodium/product.json",
"~/.config/VSCodium/product.json",
)
copy_file("home/.config/VSCodium/product.json")

View file

@ -1,5 +1,5 @@
from src.util import paru_install, copy_file
from src.constants import content_dir
name = "system76 scheduler"
@ -10,7 +10,6 @@ def setup():
# using the git version because "system76-scheduler" builds from source too anyway
paru_install("system76-scheduler-git")
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,
)

View file

@ -35,7 +35,7 @@ def setup():
)
# 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
system("chsh -s /bin/zsh")

View file

@ -55,21 +55,32 @@ def remove_directory(path):
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.
Automatically creates parent directory/directories of dst if it does not exist already.
Copies a file in the repo to the system.
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:
src: 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--)
- src_file: A path-like object or string pointing to a file.
- mode: Permission mode (as in chmod). Defaults to 644 (rw-r--r--).
- sudo: Whether to run command as sudo or not.
"""
if sudo:
system(f"sudo install -Dm{mode} {src} {dst}")
dst_file = str(src_file)
if dst_file.startswith("home/"):
dst_file = src.constants.home_dir + dst_file[4:]
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):