Skip to content

basantech89/project-automator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Automator

Automator automates environment setup. Automator assumes you don't have even git installed, and then install the tools like git, node, dbeaver, postman, warp terminal, etc. It'll skip the installation of tools if they are already installed.

You can run this tool as many times as you want, and choose different options as per your choice.

SHELL

You can choose among bash, zsh, or fish. I'd recommend to choose the fish shell as your shell program.

You can find all the plugins, their aliases, and description that Automator install for zsh here https://github.com/ohmyzsh/ohmyzsh/wiki/plugins

Tools

it install below tools for you

  • Installed by Automator automatically

    • dialog: take user input with a dialog
    • git
    • sudo
    • curl
    • wget
    • gpg
    • jq: to process JSON data
    • xclip: to interact with system clipboard
    • vim
    • cowsay: show you a cow in the terminal
      • cows: Some cowsay cow files that I handpicked
    • lolcat: display text in your terminal with rainbow colors
    • fortune: tell you fortune
    • unzip
    • zip
    • paru: Automator install this aur-helper if your package manager is pacman to install packages from the AUR
    • software-properties-common: if your package manager is apt-get
    • apt-transport-https: if your package manager is apt-get
    • ca-certificates: if your package manager is apt-get
    • bash-completion: if your package manager is apt-get
    • brew: if your package manager is brew
    • bash-completion@2: if your package manager is brew
    • snap: to install snap packages
    • ncdu: powerful disk analyzer
    • peco: interactive filtering
    • safe-rm: move files to trash instead of directly deleting
    • plocate: find any file in linux
    • highlight: colored cat
    • ripgrep
    • zoxide: smarter cd command
    • colorls: ls alternative that shows file icons as well
      • ruby
      • If your package manager is apt-get
        • ruby-dev
    • If your package manager is pacman
    • direnv: load environment variables from an .envrc file or an.env file
    • command-not-found script: insulter script that runs when a command is not found
  • You choose

    • neovim
      • python3-dev: if your package manager is apt-get
      • python3-pip: if your package manager is apt-get
    • warp terminal
      • Automator sets below configuration automatically
        • Theme: Cyberwave
        • Font: CaskaydiaCove Nerd Font
        • InputMode: PinnedToTop (so you don't have to turn your neck down all the time, good ergonomically)
    • starship: if you choose to use fish shell
    • node: install node with FNM
    • google chrome
    • dbeaver
      • dbeaver-plugin-office: if your package manager is pacman
    • postman
    • docker
    • aws cli
    • notion
    • microsoft teams
    • slack
    • brave browser
    • vscode

Fonts

  • Nerd Fonts: CaskaydiaMono, Terminess, ComicShanns
  • Maple Mono

If your package manager is apt-get and if you chose zsh

  • It set your terminal font to ComicShans nerd font since nerd font support ligatures which are needed for the Powerlevel10k theme that Automator installs.

Aliases

Automator add below aliases -

  • hcat: highlight -O ansi
  • ls: colorls
  • la: colorls -a
  • ll: colorls -l
  • lla: colorls -la
  • If your package manager is pacman
    • pman: sudo pacman -Syu --needed --noconfirm
    • pu: paru -Syu --removemake --cleanafter --needed --noconfirm
    • pm: sudo pacman-mirrors --fasttrack 20 && sudo pacman -Syyu
    • pma: sudo pacman-mirrors --country all
  • If your package manager is apt-get
    • ag: sudo apt install -y
  • If you choose to use fish shell
    • sc: source ~/.config/fish/config.fish
  • If you choose to use zsh shell
    • sc: source source ~/.zshrc
  • If you choose to use bash shell
    • sc: source ~/.bashrc
  • z: zoxide for easy directory navigation, added by zoxide
  • plugins added for oh-my-zsh or fisher adds their own aliases, e.g docker plugin add its aliases

Execution

  • Open the terminal
  • Clone the repo, use wget as below if you don't have git
    • wget https://github.com/basantech89/project-automator/archive/main.zip -O project-automator.zip
  • Unzip the zip file
  • Give the app.sh file permission to execute chmod +x <path-to-the-project>/app.sh
  • Run <path-to-the-project>/app.sh

If the script fails, run it again, it'll pass unless there's a fatal issue.

Logs

Project automator store its logs in the <path-to-the-project>/main.log, and <path-to-the-project>/main-error.log files, so that you can check what it did at each step.

Post Installation

Don't forget to logout and login back in, or reboot your system once the script has been executed.

Optionally, run below command if you choose zsh as the shell. I couldn't do it in the script since oh-my-zsh creates problems with it. A cow will greet you with a fortune in a new session every time. It's done already if you choose any other shell.

sed -i '1s;^;fortune -s | cowsay -f `ls -1 /usr/share/cowsay/cows/*.cow | sort -R | head -1` | lolcat\n;' ~/.zshrc

Tests

Although the code is written to run the scripts for Linux(Ubuntu, and Arch Linux), or Mac and for shells fish, zsh, or bash, but the scripts are tested only with Ubuntu 22 with fish and zsh shells. I'll try to test it on other systems as well.

Showcase

Below is how your terminal will look like in

Ubuntu with zsh shell automator-ubuntu-zsh

Ubuntu with warp terminal with fish shell automator-ubuntu-warp-zsh

Ubuntu with neovim ubuntu-with-neovim

Ubutu with the tools tools

Issues

Feel free to raise the issues, request new features or contribute to the project.

ToDo

  1. Test the project on MacOS

About

Automate your system setup

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages