1
0
mirror of https://github.com/Foltik/dotfiles synced 2024-11-28 05:27:06 -05:00
dotfiles/lib/deploy.py
2018-12-08 23:46:13 -05:00

88 lines
2.5 KiB
Python

import os
import distutils
import subprocess
from pathlib import Path
from lib.package import Package
import lib.proc as proc
import lib.pacman as pacman
import lib.yay as yay
import lib.git as git
installed_packages = pacman.get_installed()
def copy(source, dest):
print(source, '->', dest)
if source.is_dir():
pass#distutils.dir_util.copy_tree(source.absolute(), dest.absolute())
else:
pass#distutils.file_util.copy_file(source.absolute(), dest.absolute())
def import_paths(paths, base):
if not isinstance(paths, list):
paths = [paths]
for path in paths:
copy(Path('~') / Path(base) / path, Path('lain') / Path(base) / path)
def export_paths(paths, base):
if not isinstance(paths, list):
paths = [paths]
for path in paths:
copy(Path('lain') / Path(base) / path, Path('~') / Path(base) / path)
def install(package):
if not package.install or not package.source:
return
if package.source == 'core':# and package.name not in installed_packages:
print('pacman', package.name)
#pacman.install(package.name)
elif package.source == 'aur':# and package.name not in installed_packages:
print('yay', package.name)
#yay.install(package.name)
elif package.source == 'git':
print('git', package.name)
#git.clone(package.url, 'git/' + package.name)
def export_config(package):
if not package.export_config or not package.config:
return
export_paths(package.config, '.config')
def import_config(package):
if not package.config:
return
import_paths(package.config, '.config')
def run_script(package):
if not package.run_script or not package.script:
return
for script in package.script:
print('fish', script)
#proc.exec(['fish', package.script.absolute()])
def export_units(package):
if not package.export_units or not package.userunit:
return
export_paths(package.userunit, '.config/systemd/user')
def import_units(package):
if not package.userunit:
return
import_paths(package.userunit, 'lain/.config/systemd/user')
def enable_units(package):
if not package.enable_units or not package.userunit:
return
for unit in package.userunit:
print('systemctl --user enable', unit.name)
#proc.exec(['systemctl', '--user', 'enable', unit.name])
def deploy(package):
if not package.enabled:
return
install(package)
export_config(package)
run_script(package)
export_units(package)