Compare commits

..

5 Commits

Author SHA1 Message Date
39cdd989f0 Improved menu 2021-11-23 11:48:33 +01:00
5ddc2dc72d Added menus 2021-11-23 09:25:51 +01:00
673554dd6d Added new project 2021-11-23 08:16:21 +01:00
1d9a048117 Added settings 2021-11-23 08:12:47 +01:00
8c366cd5e1 Added cpl 2021-10-08 08:24:47 +02:00
99 changed files with 456 additions and 1174 deletions

135
.gitignore vendored Normal file
View File

@@ -0,0 +1,135 @@
# ---> Python
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit model / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Custom Environments
cpl-env/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# IDE
PythonImportHelper-v2-Completion.json

38
.vscode/settings.json vendored
View File

@@ -1,24 +1,22 @@
{
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#ab307e",
"activityBar.activeBorder": "#25320e",
"activityBar.background": "#ab307e",
"activityBar.foreground": "#e7e7e7",
"activityBar.inactiveForeground": "#e7e7e799",
"activityBarBadge.background": "#25320e",
"activityBarBadge.foreground": "#e7e7e7",
"statusBar.background": "#832561",
"statusBar.foreground": "#e7e7e7",
"statusBarItem.hoverBackground": "#ab307e",
"titleBar.activeBackground": "#832561",
"titleBar.activeForeground": "#e7e7e7",
"titleBar.inactiveBackground": "#83256199",
"titleBar.inactiveForeground": "#e7e7e799",
"sash.hoverBorder": "#ab307e",
"statusBarItem.remoteBackground": "#832561",
"statusBarItem.remoteForeground": "#e7e7e7",
"commandCenter.border": "#e7e7e799"
"activityBar.activeBackground": "#93e6fc",
"activityBar.activeBorder": "#fa45d4",
"activityBar.background": "#93e6fc",
"activityBar.foreground": "#15202b",
"activityBar.inactiveForeground": "#15202b99",
"activityBarBadge.background": "#fa45d4",
"activityBarBadge.foreground": "#15202b",
"sash.hoverBorder": "#93e6fc",
"statusBar.background": "#61dafb",
"statusBar.foreground": "#15202b",
"statusBarItem.hoverBackground": "#2fcefa",
"statusBarItem.remoteBackground": "#61dafb",
"statusBarItem.remoteForeground": "#15202b",
"titleBar.activeBackground": "#61dafb",
"titleBar.activeForeground": "#15202b",
"titleBar.inactiveBackground": "#61dafb99",
"titleBar.inactiveForeground": "#15202b99"
},
"peacock.color": "#832561",
"python.pythonPath": "C:\\Users\\sattler\\AppData\\Local\\Programs\\Python\\Python39\\python.exe"
"peacock.color": "#61dafb"
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_barrier() {
echo "Installing barrier"
sudo apt install barrier -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_boxes() {
echo "Installing gnome-boxes"
sudo apt install gnome-boxes -y
}

View File

@@ -1,10 +0,0 @@
#!/bin/bash
install_brave() {
echo "Installing brave-browser"
sudo apt install apt-transport-https curl
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
install_btop() {
sudo apt install coreutils sed git build-essential gcc g++
git clone https://github.com/aristocratos/btop.git
cd btop
sudo make
sudo make install
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
install_chrome() {
echo 'Installing Google Chrome'
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i ./google-chrome-stable_current_amd64.deb
rm google-chrome-stable_current_amd64.deb
sudo apt install chrome-gnome-shell -y
}

View File

@@ -1,7 +0,0 @@
#!/bin/bash
install_discord() {
echo 'Installing Discord'
wget -O discord.deb "https://discordapp.com/api/download?platform=linux&format=deb"
sudo dpkg -i discord.deb
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
install_etcher() {
echo 'Installing Etcher'
echo "deb https://deb.etcher.io stable etcher" | sudo tee /etc/apt/sources.list.d/balena-etcher.list
sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys 379CE192D401AB61
sudo apt update -y
sudo apt install balena-etcher-electron -y
}

View File

@@ -1,12 +0,0 @@
#!/bin/bash
install_neofetch() {
echo "Installing fastfetch"
sudo apt install fastfetch -y
echo '
if [ $USER != "root" ]; then
echo ""
fastfetch
fi
' | sudo tee -a /etc/bash.bashrc > /dev/null
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_flameshot() {
echo "Installing Flameshot"
sudo apt install flameshot -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_freerdp() {
echo "Installing freerdp"
sudo apt-get install freerdp2-x11
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_geary() {
echo "Installing geary"
sudo apt install geary -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_git() {
echo "Installing git"
sudo apt install git -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_gnome_shell() {
echo 'Installing gnome-shell'
sudo apt install chrome-gnome-shell -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_gnome_tweaks() {
echo "Installing Gnome-Tweaks"
sudo apt install gnome-tweaks -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_gpick() {
echo "Installing gpick"
sudo apt install gpick -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_kcolorchooser() {
echo "Installing kcolorchooser"
sudo apt install kcolorchooser -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_keepassxc() {
echo "Installing keepassxc"
sudo apt install keepassxc -y
}

View File

@@ -1,24 +0,0 @@
#!/bin/bash
install_lsd() {
echo "Installing lsd"
mkdir hack
cd hack
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hack.zip
unzip Hack.zip
cd ..
sudo cp -r hack /usr/share/fonts/
sudo chmod -R 775 /usr/share/fonts/hack
rm -r hack
wget https://github.com/Peltoche/lsd/releases/download/0.19.0/lsd_0.19.0_amd64.deb
sudo dpkg -i lsd_0.19.0_amd64.deb
sudo rm lsd_0.19.0_amd64.deb
# echo "alias ls='lsd'" | sudo tee -a /home/*/.bashrc > /dev/null
# todos
# write py script to comment line: alias="ls --color=auto"
# echo "alias ls='lsd'" | sudo tee -a /etc/bash.bashrc > /dev/null
echo "
alias ls='lsd'
" | sudo tee -a /etc/bash.bashrc > /dev/null
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_ncdu() {
echo "Installing ncdu"
sudo apt install ncdu -y
}

View File

@@ -1,16 +0,0 @@
#!/bin/bash
source $PWD/common/debian/apps/fastfetch.sh
# neofetch is not longer maintained
install_neofetch() {
install_fastfetch
# echo "Installing neofetch"
# sudo apt install neofetch -y
# echo '
# if [ $USER != "root" ]; then
# echo ""
# neofetch
# fi
# ' | sudo tee -a /etc/bash.bashrc > /dev/null
}

View File

@@ -1,8 +0,0 @@
#!/bin/bash
install_nextcloud() {
echo "Installing Nextcloud client"
sudo add-apt-repository ppa:nextcloud-devs/client
sudo apt update
sudo apt install nextcloud-client -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_signal() {
echo "Installing signal-desktop "
sudo apt install signal-desktop -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_pycharm() {
echo "Installing Pycharm"
sudo snap install pycharm-community --classic
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_simplenote() {
echo "Installing Simplenote"
sudo snap install simplenote
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_stacer() {
echo "Installing Stacer"
sudo apt install stacer -y
}

View File

@@ -1,11 +0,0 @@
#!/bin/bash
install_sublime_text() {
echo "Installing sublime-text"
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt install apt-transport-https -y
sudo add-apt-repository "deb https://download.sublimetext.com/ apt/stable/"
sudo apt update
sudo apt install sublime-text -y
}

View File

@@ -1,8 +0,0 @@
#!/bin/bash
install_timeshift() {
echo "Installing Timeshift"
sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt update -y
sudo apt install timeshift -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_trash_cli() {
echo "Installing trash-cli"
sudo apt install trash-cli -y
}

View File

@@ -1,8 +0,0 @@
#!/bin/bash
install_ulauncher() {
echo "Installing Ulauncher"
sudo add-apt-repository ppa:agornostal/ulauncher
sudo apt update -y
sudo apt install ulauncher -y
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
install_vscode() {
echo "Installing VS Code"
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt update
sudo apt install code -y
}

View File

@@ -1,7 +0,0 @@
#!/bin/bash
source $PWD/common/debian/scripts/first_install.sh
source $PWD/common/debian/scripts/update.sh
first_install
update

View File

@@ -1,6 +0,0 @@
#!/bin/bash
first_install() {
echo 'Installing useful apps'
apt install net-tools dnsutils nano htop iftop tree zip unzip curl wget git sudo sshpass -y
}

View File

@@ -1,10 +0,0 @@
#!/bin/bash
update() {
echo 'Starting update:'
sudo apt update -y
echo 'Starting upgrade:'
sudo apt upgrade -y
echo 'Starting dist-upgrade:'
sudo apt dist-upgrade -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_barrier() {
echo "Installing barrier"
sudo dnf install barrier -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_boxes() {
echo "Installing gnome-boxes"
sudo dnf install gnome-boxes -y
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
install_brave() {
echo "Installing brave-browser"
sudo dnf install dnf-plugins-core
sudo dnf config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/x86_64/
sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
sudo dnf install brave-browser
}

View File

@@ -1,10 +0,0 @@
#!/bin/bash
install_btop() {
sudo dnf groupinstall 'Development Tools' -y
sudo dnf install coreutils sed git gcc-c++ -y
git clone https://github.com/aristocratos/btop.git
cd btop
sudo make
sudo make install
}

View File

@@ -1,8 +0,0 @@
#!/bin/bash
install_chrome() {
echo 'Installing Google Chrome'
sudo dnf install fedora-workstation-repositories
sudo dnf config-manager --set-enabled google-chrome
sudo dnf install google-chrome-stable -y
}

View File

@@ -1,8 +0,0 @@
#!/bin/bash
install_discord() {
echo 'Installing Discord'
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf update
sudo dnf install discord -y
}

View File

@@ -1,8 +0,0 @@
#!/bin/bash
install_etcher() {
echo 'Installing Etcher'
curl -1sLf 'https://dl.cloudsmith.io/public/balena/etcher/setup.rpm.sh' | sudo -E bash
sudo dnf update
sudo dnf install balena-etcher-electron -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_flameshot() {
echo "Installing Flameshot"
sudo dnf install flameshot -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_freerdp() {
echo "Installing freerdp"
sudo dnf-get install freerdp2-x11
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_geary() {
echo "Installing geary"
sudo dnf install geary -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_git() {
echo "Installing git"
sudo dnf install git -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_gnome_shell() {
echo 'Installing gnome-shell'
sudo dnf install chrome-gnome-shell -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_gnome_tweaks() {
echo "Installing Gnome-Tweaks"
sudo dnf install gnome-tweaks -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_gpick() {
echo "Installing gpick"
sudo dnf install gpick -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_kcolorchooser() {
echo "Installing kcolorchooser"
sudo dnf install kcolorchooser -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_keepassxc() {
echo "Installing keepassxc"
sudo dnf install keepassxc -y
}

View File

@@ -1,22 +0,0 @@
#!/bin/bash
install_lsd() {
echo "Installing lsd"
mkdir hack
cd hack
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hack.zip
unzip Hack.zip
cd ..
sudo cp -r hack /usr/share/fonts/
sudo chmod -R 775 /usr/share/fonts/hack
rm -r hack
dnf install lsd -y
# echo "alias ls='lsd'" | sudo tee -a /home/*/.bashrc > /dev/null
# todos
# write py script to comment line: alias="ls --color=auto"
# echo "alias ls='lsd'" | sudo tee -a /etc/bash.bashrc > /dev/null
echo "
alias ls='lsd'
" | sudo tee -a /etc/bash.bashrc > /dev/null
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_ncdu() {
echo "Installing ncdu"
sudo dnf install ncdu -y
}

View File

@@ -1,12 +0,0 @@
#!/bin/bash
install_neofetch() {
echo "Installing neofetch"
sudo dnf install neofetch -y
echo '
if [ $USER != "root" ]; then
echo ""
neofetch
fi
' | sudo tee -a /etc/bash.bashrc > /dev/null
}

View File

@@ -1,8 +0,0 @@
#!/bin/bash
install_nextcloud() {
echo "Installing Nextcloud client"
sudo add-dnf-repository ppa:nextcloud-devs/client
sudo dnf update
sudo dnf install nextcloud-client -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_signal() {
echo "Installing signal-desktop "
sudo dnf install signal-desktop -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_stacer() {
echo "Installing Stacer"
sudo dnf install stacer -y
}

View File

@@ -1,10 +0,0 @@
#!/bin/bash
install_sublime_text() {
echo "Installing sublime-text"
sudo dnf install dnf-transport-https -y
sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
sudo dnf config-manager --add-repo https://download.sublimetext.com/rpm/stable/x86_64/sublime-text.repo
sudo dnf install sublime-text -y
}

View File

@@ -1,8 +0,0 @@
#!/bin/bash
install_timeshift() {
echo "Installing Timeshift"
sudo add-dnf-repository -y ppa:teejee2008/ppa
sudo dnf update -y
sudo dnf install timeshift -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
install_trash_cli() {
echo "Installing trash-cli"
sudo dnf install trash-cli -y
}

View File

@@ -1,8 +0,0 @@
#!/bin/bash
install_ulauncher() {
echo "Installing Ulauncher"
sudo add-dnf-repository ppa:agornostal/ulauncher
sudo dnf update -y
sudo dnf install ulauncher -y
}

View File

@@ -1,16 +0,0 @@
#!/bin/bash
install_vscode() {
echo "Installing VS Code"
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
cat <<EOF | sudo tee /etc/yum.repos.d/vscode.repo
[code]
name=Visual Studio Code
baseurl=https://packages.microsoft.com/yumrepos/vscode
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
EOF
sudo dnf check-update
sudo dnf install code -y
}

View File

@@ -1,7 +0,0 @@
#!/bin/bash
source $PWD/common/redhat/scripts/first_install.sh
source $PWD/common/redhat/scripts/update.sh
first_install
update

View File

@@ -1,6 +0,0 @@
#!/bin/bash
first_install() {
echo 'Installing useful apps'
dnf install net-tools dnsutils nano htop iftop tree zip unzip curl wget sudo sshpass -y
}

View File

@@ -1,6 +0,0 @@
#!/bin/bash
update() {
echo 'Starting upgrade:'
sudo dnf upgrade -y
}

View File

@@ -1,11 +0,0 @@
#!/bin/bash
install_candy_icons() {
cd /tmp
wget https://github.com/EliverLara/candy-icons/archive/refs/heads/master.zip
unzip master.zip
mkdir -p ~/.local/share/icons/candy-icons
cp -r candy-icons-master/* ~/.local/share/icons/candy-icons
rm -r candy-icons-master
rm -r master.zip
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
install_grub_theme() {
git clone https://github.com/vinceliuice/grub2-themes.git
cd grub2-themes
sudo ./install.sh -t $1 -s $2
cd ..
sudo rm -r grub2-themes
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
install_orchis() {
git clone https://github.com/vinceliuice/Orchis-theme
cd Orchis-theme
./install.sh -t $1
cd ..
sudo rm -r Orchis-theme
}

View File

@@ -1,11 +0,0 @@
#!/bin/bash
install_tela_circle_icons() {
git clone https://github.com/vinceliuice/Tela-circle-icon-theme
cd Tela-circle-icon-theme
./install.sh -a
cd ..
sudo rm -r Tela-circle-icon-theme
sudo cp -r ~/.local/share/icons/hicolor/128x128/apps/* ~/.local/share/icons/Tela-circle-orange-dark/scalable/apps/
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash
install_vimix_cursors() {
git clone https://github.com/vinceliuice/Vimix-cursors
cd Vimix-cursors
./install.sh
cd ..
sudo rm -r Vimix-cursors
}

12
cpl-workspace.json Normal file
View File

@@ -0,0 +1,12 @@
{
"WorkspaceSettings": {
"DefaultProject": "multi-install-cli",
"Projects": {
"multi-install-cli": "src/multi_install_cli/multi-install-cli.json",
"multi-install-apps": "src/multi_install_apps/multi-install-apps.json",
"test": "src/test/test.json",
"multi_install": "src/multi_install/multi_install.json"
},
"Scripts": {}
}
}

6
src/multi_install.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
# -*- coding: utf-8 -*-
source ../venv/bin/activate
export PYTHONPATH=./:$PYTHONPATH
python3.9 multi_install_cli/main.py

View File

@@ -0,0 +1 @@
# imports

View File

@@ -0,0 +1 @@
# imports

View File

@@ -0,0 +1,19 @@
from abc import ABC, abstractmethod
class MenuServiceABC(ABC):
@abstractmethod
def __init__(self): pass
@abstractmethod
def run(self): pass
@abstractmethod
def select_os(self) -> str: pass
@abstractmethod
def main_menu(self) -> str: pass
@abstractmethod
def select_collection(self) -> str: pass

View File

@@ -0,0 +1 @@
# imports

View File

@@ -0,0 +1,24 @@
import traceback
from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC
from cpl_core.console import Console
class OSSettings(ConfigurationModelABC):
def __init__(self):
ConfigurationModelABC.__init__(self)
self._operating_systems = []
@property
def operating_systems(self) -> list[str]:
return self._operating_systems
def from_dict(self, settings: dict):
try:
for os in settings['OperatingSystems']:
self._operating_systems.append(os)
except Exception as e:
Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {self.__name__} settings')
Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')

View File

@@ -0,0 +1,43 @@
{
"ProjectSettings": {
"Name": "multi_install",
"Version": {
"Major": "0",
"Minor": "0",
"Micro": "0"
},
"Author": "",
"AuthorEmail": "",
"Description": "",
"LongDescription": "",
"URL": "",
"CopyrightDate": "",
"CopyrightName": "",
"LicenseName": "",
"LicenseDescription": "",
"Dependencies": [
"sh_cpl>=2021.10.2"
],
"PythonVersion": ">=3.9.2",
"PythonPath": {
"linux": ""
},
"Classifiers": []
},
"BuildSettings": {
"ProjectType": "library",
"SourcePath": "",
"OutputPath": "../../dist",
"Main": "multi_install.main",
"EntryPoint": "multi_install",
"IncludePackageData": false,
"Included": [],
"Excluded": [
"*/__pycache__",
"*/logs",
"*/tests"
],
"PackageData": {},
"ProjectReferences": []
}
}

View File

@@ -0,0 +1 @@
# imports

View File

@@ -0,0 +1,68 @@
from typing import Optional
from cpl_core.console import Console
from cpl_query.extension import List
from multi_install.abc.menu_service_abc import MenuServiceABC
from multi_install.config.os_settings import OSSettings
class MenuService(MenuServiceABC):
def __init__(self, os_settings: OSSettings):
self._os_settings = os_settings
self._os: Optional[str] = None
def run(self):
is_end = False
while not is_end:
self.select_os()
main_menu = self.main_menu()
if main_menu == 'Exit':
is_end = True
elif main_menu == 'Back':
break
def select_os(self):
Console.clear()
options = List(str, self._os_settings.operating_systems.copy())
options.append('Exit')
Console.write_line('Select option:')
options.for_each(lambda o: Console.write_line(f'[{options.index(o)}] {o}'))
os = int(Console.read('\n:'))
if os == options.index('Exit'):
exit()
self._os = os
def main_menu(self) -> str:
Console.clear()
options = List(str, [
'Install collection',
'Uninstall collection',
'Add collection',
'Remove collection',
'Install application',
'Uninstall application',
'Add application',
'Remove application',
'Add application',
'Back',
'Exit'
])
Console.write_line('Select option:')
options.for_each(lambda o: Console.write_line(f'[{options.index(o)}] {o}'))
selected = int(Console.read('\n:'))
if selected == options.index('Exit'):
exit()
return selected
def select_collection(self) -> str:
options = []
options.append('Exit')
return Console.select('>', 'Select collection:', options)

View File

@@ -0,0 +1 @@
# imports:

View File

@@ -0,0 +1,20 @@
from cpl_core.application import ApplicationABC
from cpl_core.configuration import ConfigurationABC
from cpl_core.console import Console
from cpl_core.dependency_injection import ServiceProviderABC
from multi_install.abc.menu_service_abc import MenuServiceABC
class Application(ApplicationABC):
def __init__(self, config: ConfigurationABC, services: ServiceProviderABC):
ApplicationABC.__init__(self, config, services)
self._menu_service: MenuServiceABC = services.get_service(MenuServiceABC)
def configure(self):
pass
def main(self):
self._menu_service.run()

View File

@@ -0,0 +1,22 @@
{
"TimeFormatSettings": {
"DateFormat": "%Y-%m-%d",
"TimeFormat": "%H:%M:%S",
"DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f",
"DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S"
},
"LoggingSettings": {
"Path": "logs/",
"Filename": "log_$start_time.log",
"ConsoleLogLevel": "ERROR",
"FileLogLevel": "WARN"
},
"OS": {
"OperatingSystems": [
"Fedora",
"Ubuntu"
]
}
}

View File

@@ -0,0 +1,14 @@
from cpl_core.application import ApplicationBuilder
from multi_install_cli.application import Application
from multi_install_cli.startup import Startup
def main():
app_builder = ApplicationBuilder(Application)
app_builder.use_startup(Startup)
app_builder.build().run()
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,43 @@
{
"ProjectSettings": {
"Name": "multi-install-cli",
"Version": {
"Major": "0",
"Minor": "0",
"Micro": "0"
},
"Author": "",
"AuthorEmail": "",
"Description": "",
"LongDescription": "",
"URL": "",
"CopyrightDate": "",
"CopyrightName": "",
"LicenseName": "",
"LicenseDescription": "",
"Dependencies": [
"sh_cpl>=2021.10.0"
],
"PythonVersion": ">=3.9.2",
"PythonPath": {
"linux": ""
},
"Classifiers": []
},
"BuildSettings": {
"ProjectType": "console",
"SourcePath": "",
"OutputPath": "../../dist",
"Main": "multi_install_cli.main",
"EntryPoint": "multi-install-cli",
"IncludePackageData": false,
"Included": [],
"Excluded": [
"*/__pycache__",
"*/logs",
"*/tests"
],
"PackageData": {},
"ProjectReferences": []
}
}

View File

@@ -0,0 +1,26 @@
import os
from cpl_core.application import StartupABC
from cpl_core.configuration import ConfigurationABC
from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC
from cpl_core.environment import ApplicationEnvironment
from multi_install.abc.menu_service_abc import MenuServiceABC
from multi_install.service.menu_service import MenuService
class Startup(StartupABC):
def __init__(self):
StartupABC.__init__(self)
def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC:
environment.set_working_directory(os.path.dirname(__file__))
configuration.add_json_file('appsettings.json')
return configuration
def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC:
services.add_singleton(MenuServiceABC, MenuService)
return services.build_service_provider()

1
src/tests/__init__.py Normal file
View File

@@ -0,0 +1 @@
# imports:

View File

@@ -1,54 +0,0 @@
ArcMenu Theme//rgba(28, 28, 28, 0.98)//rgba(211, 218, 227, 1)//rgb(63,62,64)//rgba(238, 238, 236, 0.1)//rgba(255,255,255,1)//rgb(63,62,64)//9//0//0//0//0//false//
Dark Blue Theme//rgb(25,31,34)//rgb(189,230,251)//rgb(41,50,55)//rgb(41,50,55)//rgba(255,255,255,1)//rgb(41,50,55)//9//1//5//12//24//true//
Light Blue Theme//rgb(255,255,255)//rgb(51,51,51)//rgb(235,235,235)//rgba(189,230,251,0.9)//rgba(89,89,89,1)//rgba(189,230,251,0.9)//9//1//5//12//24//true//
ArcMenu Theme//rgba(28, 28, 28, 0.98)//rgba(211, 218, 227, 1)//rgb(63,62,64)//rgba(238, 238, 236, 0.1)//rgba(255,255,255,1)//rgb(63,62,64)//9//0//0//0//0//false//
Dark Blue//rgb(25,31,34)//rgb(189,230,251)//rgb(41,50,55)//rgb(41,50,55)//rgba(255,255,255,1)//rgb(41,50,55)//9//1//5//12//24//true//
Light Blue//rgb(255,255,255)//rgb(51,51,51)//rgb(235,235,235)//rgba(189,230,251,0.9)//rgba(89,89,89,1)//rgba(189,230,251,0.9)//9//1//5//12//24//true//
Silk Desert//rgba(50,52,73,0.820946)//rgba(211, 218, 227, 1)//rgb(63,62,64)//rgba(238, 238, 236, 0.1)//rgba(255,255,255,1)//rgb(63,62,64)//11//0//0//0//0//false//
Breeze//rgb(237,237,243)//rgb(36,36,40)//rgba(63,62,64,0.246622)//rgba(61,174,235,0.55)//rgb(36,36,40)//rgb(210,210,215)//9//1//0//0//0//false//
Breeze Dark//rgb(49,53,61)//rgb(237,237,243)//rgba(63,62,64,0.246622)//rgba(61,174,235,0.55)//rgb(237,237,243)//rgb(65,69,73)//9//1//0//0//0//false//
Dark Blue 2//rgb(50,52,61)//rgb(211,217,227)//rgba(211,217,227,0.2)//rgb(81,149,226)//rgba(255,255,255,1)//rgba(211,217,227,0.5)//9//1//4//0//0//false//
Dark Orange//rgb(51,51,51)//rgb(226,224,221)//rgba(174,167,159,0.2)//rgb(233,84,32)//rgba(255,255,255,1)//rgba(233,84,32,0.5)//9//1//4//12//24//true//
Light Orange//rgb(246,246,245)//rgb(76,76,76)//rgba(51,51,51,0.2)//rgb(233,84,32)//rgba(114,114,114,1)//rgba(233,84,32,0.5)//9//1//4//12//24//true//
Blue Orange//rgb(44,62,80)//rgb(189,195,199)//rgba(189,195,199,0.2)//rgb(231,76,60)//rgba(227,233,237,1)//rgba(189,195,199,0.5)//9//1//4//0//0//false//
Light Purple//rgb(237,245,252)//rgb(39,45,45)//rgba(39,45,45,0.2)//rgba(144,112,164,0.5)//rgba(77,83,83,1)//rgba(144,112,164,0.5)//9//1//6//0//0//false//
Dark Green//rgb(27,34,36)//rgb(243,243,243)//rgba(46,149,130,0.2)//rgb(46,149,130)//rgba(255,255,255,1)//rgba(46,149,130,0.35)//9//1//6//0//0//true//
Gray//rgb(142,142,142)//rgb(255,255,255)//rgb(63,62,64)//rgba(238, 238, 236, 0.1)//rgba(255,255,255,1)//rgb(63,62,64)//11//0//0//0//0//false//
Terminal Green//rgba(28, 28, 28, 0.98)//rgb(17,164,40)//rgb(63,62,64)//rgba(17,164,40,0.641892)//rgba(255,255,255,1)//rgb(63,62,64)//9//0//0//0//0//false//
Sky Clear//rgba(64,145,191,0.756757)//rgb(243,243,243)//rgb(63,62,64)//rgba(135,64,191,0.253378)//rgba(255,255,255,1)//rgb(63,62,64)//9//0//0//0//0//false//
Ubi Purple//rgba(174,64,191,0.523649)//rgb(243,243,243)//rgb(63,62,64)//rgba(189,191,64,0.763514)//rgba(255,255,255,1)//rgb(63,62,64)//9//0//0//0//0//false//
Shade//rgb(46,52,54)//rgb(186,189,182)//rgb(63,62,64)//rgb(85,87,83)//rgb(238,238,236)//rgb(63,62,64)//9//0//0//0//0//false//
Red Shade//rgba(191,64,74,0.753378)//rgb(243,243,243)//rgb(63,62,64)//rgb(85,87,83)//rgb(238,238,236)//rgb(63,62,64)//9//0//0//0//0//false//
Tilk Blue//rgba(74,179,228,0.716216)//rgb(243,243,243)//rgb(63,62,64)//rgb(85,87,83)//rgb(238,238,236)//rgb(63,62,64)//9//0//0//0//0//false//
Green Blue//rgb(87,121,89)//rgb(189,230,251)//rgb(41,50,55)//rgb(41,50,55)//rgba(255,255,255,1)//rgb(41,50,55)//9//1//5//12//24//true//
Gray Blue//rgb(136,138,133)//rgb(189,230,251)//rgb(41,50,55)//rgb(41,50,55)//rgba(255,255,255,1)//rgb(41,50,55)//9//1//5//12//24//true//
Pastel//rgb(238,238,236)//rgb(46,52,54)//rgb(63,62,64)//rgb(233,185,110)//rgb(173,127,168)//rgb(63,62,64)//9//0//0//0//0//false//
Pastel 2//rgb(238,238,236)//rgb(46,52,54)//rgb(63,62,64)//rgba(191,64,190,0.344595)//rgb(114,159,207)//rgb(63,62,64)//9//0//0//0//0//false//
Pastel 3//rgb(238,238,236)//rgb(46,52,54)//rgb(63,62,64)//rgba(64,137,191,0.358108)//rgb(78,154,6)//rgb(63,62,64)//9//0//0//0//0//false//
Pastel 4//rgb(238,238,236)//rgb(46,52,54)//rgb(63,62,64)//rgba(64,191,70,0.307432)//rgb(196,160,0)//rgb(63,62,64)//9//0//0//0//0//false//
Dark Pastel//rgb(46,52,54)//rgb(243,243,243)//rgb(63,62,64)//rgb(233,185,110)//rgb(173,127,168)//rgb(63,62,64)//9//0//0//0//0//false//
Dark Pastel 2//rgb(46,52,54)//rgb(243,243,243)//rgb(63,62,64)//rgba(191,64,190,0.344595)//rgb(114,159,207)//rgb(63,62,64)//9//0//0//0//0//false//
Dark Pastel 3//rgb(46,52,54)//rgb(243,243,243)//rgb(63,62,64)//rgba(64,137,191,0.358108)//rgb(78,154,6)//rgb(63,62,64)//9//0//0//0//0//false//
Dark Pastel 4//rgb(46,52,54)//rgb(243,243,243)//rgb(63,62,64)//rgba(64,191,70,0.307432)//rgb(196,160,0)//rgb(63,62,64)//9//0//0//0//0//false//
Yellow Shade//rgb(196,160,0)//rgb(46,52,54)//rgb(63,62,64)//rgb(85,87,83)//rgb(238,238,236)//rgb(63,62,64)//9//0//0//0//0//false//
Adapta//rgb(250,251,252)//rgb(34,45,50)//rgb(81,84,86)//rgba(0,150,136,0.121711)//rgba(72,83,88,1)//rgb(0,150,136)//11//0//8//12//24//true//
Adapta Nokto//rgb(38,50,56)//rgb(205,215,218)//rgb(38,50,56)//rgba(125,131,134,0.207237)//rgba(243,253,255,1)//rgb(0,188,212)//11//0//8//12//24//true//
Arc//rgb(245,246,247)//rgb(55,54,68)//rgba(82,148,226,0.903915)//rgba(56,55,68,0.0782918)//rgba(93,92,106,1)//rgb(82,148,226)//11//0//8//12//24//true//
Arc Dark//rgb(56,60,74)//rgb(188,195,205)//rgba(82,148,226,0.903915)//rgba(188,195,205,0.188612)//rgba(226,233,243,1)//rgb(82,148,226)//11//0//8//12//24//true//
Pop!_OS Dark//rgb(69,63,63)//rgb(188,185,183)//rgb(68,61,58)//rgba(250,164,26,0.885135)//rgba(226,223,221,1)//rgb(50,128,138)//11//0//8//12//24//true//
Pop!_OS//rgb(250,251,252)//rgb(87,79,74)//rgba(188,185,183,0.722973)//rgba(250,164,26,0.885135)//rgba(125,117,112,1)//rgb(72,185,199)//11//0//8//12//24//true//
McOS CTLina//rgba(243,243,243,0.841549)//rgb(32,32,32)//rgba(243,243,243,0.841549)//rgb(203,204,207)//rgba(70,70,70,1)//rgb(61,140,248)//11//0//8//12//24//true//
McOS CTLina Dark//rgba(47,47,46,0.873239)//rgb(198,194,194)//rgb(44,45,44)//rgb(37,87,214)//rgba(236,232,232,1)//rgb(37,87,214)//11//0//8//12//24//true//
Android Dark Blue//rgb(63,62,64)//rgb(243,243,243)//rgb(0,177,251)//rgba(237,250,12,0.35473)//rgba(255,255,255,1)//rgb(0,177,251)//11//0//4//12//24//true//
Android Light Blue//rgb(255,255,255)//rgb(63,62,64)//rgb(0,177,251)//rgba(237,250,12,0.35473)//rgba(101,100,102,1)//rgb(0,177,251)//11//0//4//12//24//true//
Android Light Green//rgb(255,255,255)//rgb(63,62,64)//rgb(4,149,90)//rgba(143,219,207,0.334459)//rgba(101,100,102,1)//rgb(237,250,12)//11//0//4//12//24//true//
Android Dark Green//rgb(46,52,54)//rgb(243,243,243)//rgb(4,149,90)//rgba(143,219,207,0.334459)//rgba(255,255,255,1)//rgb(237,250,12)//11//0//4//12//24//true//
Android Dark Yaru//rgb(46,52,54)//rgb(243,243,243)//rgb(189,86,53)//rgba(247,186,36,0.405405)//rgba(255,255,255,1)//rgb(189,86,53)//11//0//4//12//24//true//
Android Light Yaru//rgb(255,255,255)//rgb(63,62,64)//rgb(189,86,53)//rgba(247,186,36,0.405405)//rgba(101,100,102,1)//rgb(189,86,53)//11//0//4//12//24//true//
Adapta 4k Dark//rgb(49,59,67)//rgb(243,243,243)//rgb(4,149,90)//rgba(0,177,251,0.337838)//rgba(255,255,255,1)//rgb(4,149,90)//11//1//4//12//24//true//
Adapta 4k Light//rgb(255,255,255)//rgb(46,52,54)//rgb(4,149,90)//rgba(0,177,251,0.337838)//rgba(84,90,92,1)//rgb(4,149,90)//11//1//4//12//24//true//
Neon Yellow Punk//rgb(49,59,67)//rgb(237,250,12)//rgb(4,149,90)//rgba(0,177,251,0.337838)//rgba(248,255,109,1)//rgb(4,149,90)//11//1//4//12//24//true//
Halo Dark Blue//rgba(49,59,67,0.841216)//rgb(243,243,243)//rgb(4,149,90)//rgba(0,177,251,0.337838)//rgba(255,255,255,1)//rgb(4,149,90)//11//1//4//12//24//true//
Halo Dark Jade//rgba(24,81,58,0.875)//rgb(243,243,243)//rgb(4,149,90)//rgba(0,177,251,0.337838)//rgba(255,255,255,1)//rgb(4,149,90)//11//1//4//12//24//true//
Halo Dark Amber//rgba(84,34,18,0.881757)//rgb(243,243,243)//rgb(247,186,36)//rgba(247,186,36,0.472973)//rgba(255,255,255,1)//rgb(247,186,36)//11//1//4//12//24//true//
Elegant Purple Haze//rgba(41,1,31,0.881757)//rgb(243,243,243)//rgba(112,8,67,0.425676)//rgba(112,8,67,0.425676)//rgba(255,255,255,1)//rgb(176,52,139)//11//0//4//12//24//true//

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +0,0 @@
[/]
available-monitors=[1, 0, 2]
hotkeys-overlay-combo='TEMPORARILY'
multi-monitors=true
panel-element-positions='{"0":[{"element":"showAppsButton","visible":false,"position":"stackedTL"},{"element":"activitiesButton","visible":false,"position":"stackedTL"},{"element":"leftBox","visible":true,"position":"stackedTL"},{"element":"taskbar","visible":false,"position":"stackedTL"},{"element":"centerBox","visible":false,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"centered"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":true,"position":"stackedBR"}],"1":[{"element":"showAppsButton","visible":false,"position":"stackedTL"},{"element":"activitiesButton","visible":false,"position":"stackedTL"},{"element":"leftBox","visible":true,"position":"stackedTL"},{"element":"taskbar","visible":false,"position":"stackedTL"},{"element":"centerBox","visible":false,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"centered"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":true,"position":"stackedBR"}],"2":[{"element":"showAppsButton","visible":false,"position":"stackedTL"},{"element":"activitiesButton","visible":false,"position":"stackedTL"},{"element":"leftBox","visible":true,"position":"stackedTL"},{"element":"taskbar","visible":false,"position":"stackedTL"},{"element":"centerBox","visible":false,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"centered"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":true,"position":"stackedBR"}]}'
panel-positions='{"0":"TOP","1":"TOP","2":"TOP"}'
panel-size=24
primary-monitor=1

View File

@@ -1,66 +0,0 @@
#!/bin/bash
source $PWD/common/debian/scripts/update.sh
source $PWD/common/debian/scripts/first_install.sh
source $PWD/common/debian/apps/barrier.sh
source $PWD/common/debian/apps/boxes.sh
source $PWD/common/debian/apps/brave.sh
source $PWD/common/debian/apps/btop.sh
source $PWD/common/debian/apps/chrome.sh
source $PWD/common/debian/apps/discord.sh
source $PWD/common/debian/apps/etcher.sh
source $PWD/common/debian/apps/flameshot.sh
source $PWD/common/debian/apps/freerdp.sh
source $PWD/common/debian/apps/geary.sh
source $PWD/common/debian/apps/git.sh
source $PWD/common/debian/apps/gnome_shell.sh
source $PWD/common/debian/apps/gnome_tweaks.sh
source $PWD/common/debian/apps/gpick.sh
source $PWD/common/debian/apps/kcolorchooser.sh
source $PWD/common/debian/apps/keepassxc.sh
source $PWD/common/debian/apps/lsd.sh
source $PWD/common/debian/apps/ncdu.sh
source $PWD/common/debian/apps/neofetch.sh
source $PWD/common/debian/apps/nextcloud.sh
source $PWD/common/debian/apps/signal.sh
source $PWD/common/debian/apps/stacer.sh
source $PWD/common/debian/apps/sublime_text.sh
source $PWD/common/debian/apps/timeshift.sh
source $PWD/common/debian/apps/trash-cli.sh
source $PWD/common/debian/apps/ulauncher.sh
source $PWD/common/debian/apps/vscode.sh
update
first_install
install_barrier
install_boxes
install_brave
install_btop
install_chrome
install_discord
install_etcher
install_flameshot
install_freerdp
install_geary
install_git
install_gnome_shell
install_gnome_tweaks
install_gpick
install_kcolorchooser
install_keepassxc
install_lsd
install_ncdu
install_neofetch
install_nextcloud
install_signal
install_stacer
install_sublime_text
install_timeshift
install_trash_cli
install_ulauncher
# IDEs
install_vscode

View File

@@ -1,60 +0,0 @@
#!/bin/bash
source $PWD/common/debian/scripts/update.sh
source $PWD/common/debian/scripts/first_install.sh
source $PWD/common/debian/apps/barrier.sh
source $PWD/common/debian/apps/boxes.sh
source $PWD/common/debian/apps/chrome.sh
source $PWD/common/debian/apps/discord.sh
source $PWD/common/debian/apps/etcher.sh
source $PWD/common/debian/apps/flameshot.sh
source $PWD/common/debian/apps/geary.sh
source $PWD/common/debian/apps/git.sh
source $PWD/common/debian/apps/gnome_shell.sh
source $PWD/common/debian/apps/gnome_tweaks.sh
source $PWD/common/debian/apps/gpick.sh
source $PWD/common/debian/apps/kcolorchooser.sh
source $PWD/common/debian/apps/keepassxc.sh
source $PWD/common/debian/apps/lsd.sh
source $PWD/common/debian/apps/ncdu.sh
source $PWD/common/debian/apps/neofetch.sh
source $PWD/common/debian/apps/nextcloud.sh
source $PWD/common/debian/apps/signal.sh
source $PWD/common/debian/apps/stacer.sh
source $PWD/common/debian/apps/sublime_text.sh
source $PWD/common/debian/apps/timeshift.sh
source $PWD/common/debian/apps/trash-cli.sh
source $PWD/common/debian/apps/ulauncher.sh
source $PWD/common/debian/apps/vscode.sh
update
default_install
install_barrier
install_boxes
install_chrome
install_discord
install_etcher
install_flameshot
install_geary
install_git
install_gnome_shell
install_gnome_tweaks
install_gpick
install_kcolorchooser
install_keepassxc
install_lsd
install_ncdu
install_neofetch
install_nextcloud
install_signal
install_stacer
install_sublime_text
install_timeshift
install_trash_cli
install_ulauncher
# IDEs
install_vscode

View File

@@ -1,16 +0,0 @@
#!/bin/bash
source $PWD/common/debian/scripts/update.sh
source $PWD/common/themes/orchis.sh
# source $PWD/common/themes/tela_circle_icons.sh
source $PWD/common/themes/candy_icons.sh
source $PWD/common/themes/vimix_cursors.sh
source $PWD/common/themes/grub_theme.sh
update
install_orchis orange
install_candy_icons
install_vimix_cursors
install_grub_theme vimix 1080p

View File

@@ -1,69 +0,0 @@
#!/bin/bash
source $PWD/common/debian/scripts/update.sh
source $PWD/common/debian/scripts/first_install.sh
source $PWD/common/debian/apps/snap/pycharm.sh
source $PWD/common/debian/apps/barrier.sh
source $PWD/common/debian/apps/boxes.sh
source $PWD/common/debian/apps/brave.sh
source $PWD/common/debian/apps/btop.sh
source $PWD/common/debian/apps/chrome.sh
source $PWD/common/debian/apps/discord.sh
source $PWD/common/debian/apps/etcher.sh
source $PWD/common/debian/apps/flameshot.sh
source $PWD/common/debian/apps/freerdp.sh
source $PWD/common/debian/apps/geary.sh
source $PWD/common/debian/apps/git.sh
source $PWD/common/debian/apps/gnome_shell.sh
source $PWD/common/debian/apps/gnome_tweaks.sh
source $PWD/common/debian/apps/gpick.sh
source $PWD/common/debian/apps/kcolorchooser.sh
source $PWD/common/debian/apps/keepassxc.sh
source $PWD/common/debian/apps/lsd.sh
source $PWD/common/debian/apps/ncdu.sh
source $PWD/common/debian/apps/neofetch.sh
source $PWD/common/debian/apps/nextcloud.sh
source $PWD/common/debian/apps/signal.sh
source $PWD/common/debian/apps/stacer.sh
source $PWD/common/debian/apps/sublime_text.sh
source $PWD/common/debian/apps/timeshift.sh
source $PWD/common/debian/apps/trash-cli.sh
source $PWD/common/debian/apps/ulauncher.sh
source $PWD/common/debian/apps/vscode.sh
update
first_install
install_barrier
install_boxes
install_brave
install_btop
install_chrome
install_discord
install_etcher
install_flameshot
install_freerdp
install_geary
install_git
install_gnome_shell
install_gnome_tweaks
install_gpick
install_kcolorchooser
install_keepassxc
install_lsd
install_ncdu
install_neofetch
install_nextcloud
install_signal
install_stacer
install_sublime_text
install_timeshift
install_trash_cli
install_ulauncher
# IDEs
install_pycharm
install_vscode

View File

@@ -1,62 +0,0 @@
#!/bin/bash
source $PWD/common/redhat/scripts/update.sh
source $PWD/common/redhat/scripts/first_install.sh
source $PWD/common/redhat/apps/barrier.sh
source $PWD/common/redhat/apps/boxes.sh
source $PWD/common/redhat/apps/brave.sh
source $PWD/common/redhat/apps/btop.sh
source $PWD/common/redhat/apps/discord.sh
source $PWD/common/redhat/apps/etcher.sh
source $PWD/common/redhat/apps/flameshot.sh
source $PWD/common/redhat/apps/geary.sh
source $PWD/common/redhat/apps/git.sh
source $PWD/common/redhat/apps/gnome_shell.sh
source $PWD/common/redhat/apps/gnome_tweaks.sh
source $PWD/common/redhat/apps/gpick.sh
source $PWD/common/redhat/apps/kcolorchooser.sh
source $PWD/common/redhat/apps/keepassxc.sh
source $PWD/common/redhat/apps/lsd.sh
source $PWD/common/redhat/apps/ncdu.sh
source $PWD/common/redhat/apps/neofetch.sh
source $PWD/common/redhat/apps/nextcloud.sh
source $PWD/common/redhat/apps/signal.sh
source $PWD/common/redhat/apps/stacer.sh
source $PWD/common/redhat/apps/sublime_text.sh
source $PWD/common/redhat/apps/timeshift.sh
source $PWD/common/redhat/apps/trash-cli.sh
source $PWD/common/redhat/apps/ulauncher.sh
source $PWD/common/redhat/apps/vscode.sh
update
first_install
install_barrier
install_boxes
install_brave
install_btop
install_chrome
install_discord
install_etcher
install_flameshot
install_geary
install_git
install_gnome_shell
install_gnome_tweaks
install_gpick
install_kcolorchooser
install_keepassxc
install_lsd
install_ncdu
install_neofetch
install_nextcloud
install_signal
install_stacer
install_sublime_text
install_timeshift
install_trash_cli
install_ulauncher
# IDEs
install_vscode

View File

@@ -1,16 +0,0 @@
#!/bin/bash
source $PWD/common/redhat/scripts/update.sh
source $PWD/common/themes/orchis.sh
# source $PWD/common/themes/tela_circle_icons.sh
source $PWD/common/themes/candy_icons.sh
source $PWD/common/themes/vimix_cursors.sh
source $PWD/common/themes/grub_theme.sh
update
install_orchis orange
install_candy_iconsbash update
install_vimix_cursors
install_grub_theme vimix 1080p

View File

@@ -1,26 +0,0 @@
#!/bin/bash
source $PWD/common/debian/scripts/update.sh
source $PWD/common/debian/scripts/first_install.sh
# source $PWD/common/debian/apps/git.sh
source $PWD/common/debian/apps/lsd.sh
source $PWD/common/debian/apps/ncdu.sh
source $PWD/common/debian/apps/fastfetch.sh
source $PWD/common/debian/apps/trash-cli.sh
update
first_install
# install_git # maybe destroying systemd
install_lsd
install_ncdu
sudo python3 $PWD/users/vsrv/scripts/write_bashrc.py /home/ /root/
install_fastfetch
install_trash_cli
# clean motd
# sudo rm -f /etc/motd
# sudo rm -f /etc/update-motd.d/*

View File

@@ -1,105 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Write bashrc script
~~~~~~~~~~~~~~~~~~~
Script to comment all alias ls="ls *" to allow global bashrc alias ls="lsd"
:copyright: (c) 2021 sh-edraft.de
:license: MIT, see LICENSE for more details.
At first check for root
Then load all .bashrc files from /home/<user>/
Each folder in /home/ must contain a .bashrc file, if not it won't be created
Usage: sudo python write_bashrc.py <home-dir> <root-dir>
Example: sudo python write_bashrc.py /home/ /root/
"""
__title__ = 'sh_write_bashrc'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2021 sh-edraft.de'
__version__ = '2021.4'
import os
import sys
_file_name = '.bashrc'
def _check_dependencies():
if sys.platform != 'linux':
raise Exception('You must use this script on linux!')
if os.geteuid() != 0:
raise PermissionError('You must be root to use this script on linux.')
def _load_all_scripts(home_dir: str, root_user_dir: str) -> list:
files = []
for user in os.listdir(home_dir):
file = os.path.join(home_dir, user, _file_name)
if os.path.isfile(file):
files.append(file)
file = os.path.join(root_user_dir, 'root', _file_name)
if os.path.isfile(file):
files.append(file)
return files
def _edit_script(file: str):
lines: list[str] = []
content = ''
try:
with open(file, 'r') as f:
lines = f.readlines()
f.close()
except Exception as e:
print(e)
for line in lines:
line_words = line.split()
e_line = ' '.join(line_words)
if not e_line.startswith('#') and e_line.startswith('alias ls'):
line = line.replace(e_line, f'#{e_line}')
elif not e_line.startswith('#') and e_line.startswith('alias') and '\'ls' in e_line or '\"ls' in e_line:
line = line.replace(e_line, f'#{e_line}')
content += line
try:
pass
with open(file, 'w') as f:
f.write(content)
f.close()
except Exception as e:
print(e)
def main():
if len(sys.argv) < 3:
print('Usage: sudo python write_bashrc.py <home-dir> <root-dir>')
exit()
_check_dependencies()
files = _load_all_scripts(sys.argv[1], sys.argv[2])
for file in files:
_edit_script(file)
print('Success!', '\nChanged files:')
print('\n'.join(files))
if __name__ == '__main__':
main()