Dotfiles management package
Project description
Welcome to machineconfig
Shortcuts
bit.ly/cfgroot
is a shortcut to this repo.glow https://bit.ly/cfgread
ORcurl bit.ly/cfgread -L | bat -l md --style="header"
to get the readme file.
Machineconfig is a package for managing configuration files (aka dotfiles). The idea is to collect those critical, time-consuming-files-to-setup in one directory and reference them via symbolic links from their original locations. Thus, when a new machine is to be setup, all that is required is to clone the repo in that machine and create the symbolic links. Dotfiles include, but are not limited to:
~/.gitconfig
~/.ssh
~/.aws
~/.bash_profile
~/.bashrc
~/.config
$profile
in Windows Powershell- etc
Additionally, files that contain data, sensitive information that should not be pushed to a repository are contained in a directory ~/dotfiles
. The files therein are encrypted before backedup.
Windows Setup
With elevated PowerShell
, run the following: (short curl bit.ly/cfgallwindows -L | iex
)
You have to have winget
first. If its not available in the your terminal, try those resources:
- https://github.com/asheroto/winget-install
- https://github.com/microsoft/winget-cli
- https://github.com/microsoft/winget-cli/discussions/3258
# apps # short: `(iwr bit.ly/cfgappswindows).Content | iex`
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/apps.ps1 | Invoke-Expression
# virtual enviornment # short (iwr bit.ly/cfgvewindows).Content | iex OR `curl bit.ly/cfgvewindows -L | iex`
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/ve.ps1 | Invoke-Expression
# dev repos # short `(iwr bit.ly/cfgreposwindows).Content | iex` OR `curl bit.ly/cfgreposwindows -L | iex`
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/repos.ps1 | Invoke-Expression
# symlinks # short `(iwr bit.ly/cfgsymlinkswindows).Content | iex` OR `curl bit.ly/cfgsymlinkswindows -L | iex`
. ~/code/machineconfig/src/machineconfig/setup_windows/symlinks.ps1
# devapps:
~/code/machineconfig/src/machineconfig/setup_windows/devapps.ps1
# pwsh and wt settings: (iwr bit.ly/cfgwt).Content | iex
iwr https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/wt_and_pwsh.ps1 | iex
(iwr bit.ly/cfgappswindows).Content | iex
(iwr bit.ly/cfgvewindows).Content | iex
(iwr bit.ly/cfgreposwindows).Content | iex
. ~/code/machineconfig/src/machineconfig/setup_windows/devapps.ps1
(iwr bit.ly/cfgwt).Content | iex
. ~/code/machineconfig/src/machineconfig/setup_windows/symlinks.ps1
Setup SSH connection:
# CHANGE pubkey_string APPROPRIATELY
$pubkey_string=(Invoke-WebRequest 'https://github.com/thisismygitrepo.keys').Content
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/openssh_all.ps1 | Invoke-Expression
short (iwr bit.ly/cfgsshwindows).Content | iex
OR curl bit.ly/cfgsshwindows -L | iex
Install Croshell Terminal Directly,
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 | Invoke-Expression
short: curl bit.ly/cfgcroshellwindows -L | iex
OR (iwr bit.ly/cfgcroshellwindows).Content | iex
Linux Setup
With sudo
access, run the following: (short curl bit.ly/cfgalllinux -L | bash
)
export package_manager="apt"
export package_manager="nix"
# apps # short: `curl bit.ly/cfgappslinux -L | bash`
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/apps.sh | bash
# Optionally: curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/apps_dev.sh | bash
# virtual enviornment # short `curl bit.ly/cfgvelinux -L | bash`
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/ve.sh | bash
# repos # short `curl bit.ly/cfgreposlinux -L | bash`
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/repos.sh | bash
# symlinks and bash profile: # short `curl bit.ly/cfgsymlinkslinux -L | bash`
source ~/code/machineconfig/src/machineconfig/setup_linux/symlinks.sh # requires sudo since it invloves chmod of dotfiles/.ssh, however sudo doesn't work with source. best to have sudo -s earlier.
# devapps
source <(sudo cat ~/code/machineconfig/src/machineconfig/setup_linux/devapps.sh)
Setup SSH connection:
pubkey_url='https://github.com/thisismygitrepo.keys' # (CHANGE APPROPRIATELY)
export pubkey_string=$(curl --silent $pubkey_url)
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/openssh_all.sh | sudo bash
# For WSL only, also run the following:
export port=2223
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/openssh_wsl.sh | sudo bash
# don't forget to run `wsl_ssh_windows_port_forwarding -p 2223` from Windows using the designated port with
short curl bit.ly/cfgsshlinux -L | bash
Install Croshell Terminal Directly
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/web_shortcuts/croshell.sh | sudo bash
short curl bit.ly/cfgcroshelllinux -L | bash
Author
Alex Al-Saffar. email
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file machineconfig-1.9.tar.gz
.
File metadata
- Download URL: machineconfig-1.9.tar.gz
- Upload date:
- Size: 252.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1eed30e1236a9aaf23fba6596fefc609c1001d404da3a1434442ea4bc4f5f7d5 |
|
MD5 | e839a1f8f50f1e9a939133f1269919bd |
|
BLAKE2b-256 | 0965b585114682387ac204a47a65d5a3e072499148e6bf3cb63f04bd54fd1342 |
File details
Details for the file machineconfig-1.9-py3-none-any.whl
.
File metadata
- Download URL: machineconfig-1.9-py3-none-any.whl
- Upload date:
- Size: 102.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2deafc81fbd4ab931c54ab292ba5a97370cb20e7b17bd3f0851b4453eb3b1969 |
|
MD5 | 22bc3139e9e4c09ce137c3e3b919b3ad |
|
BLAKE2b-256 | 10eb222419e5e581c4aad2eb1d65d0216b65d1b2e53957d74ccb96467cd1e961 |