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 # 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")

View file

@ -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",
)

View file

@ -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}"

View file

@ -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 = [

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 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",
)

View file

@ -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,
) )

View file

@ -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")

View file

@ -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):