Skip to content

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Noddy Help DevOps in  macOS


| Command | Description |:star: Now with plugins! You can check the plugins folder: /toyland/plugins

Contributions to add new plugins and keep improving the existing ones are welcome and very much appreciated!

image

The ultimate tool for devops to manage their noddy. It provides a huge set of command line commands that automate the usage of your macOS system. When you run a function, the executed command is displayed and that helps you memorize each of the Utilities for future usage.


Installation

Homebrew (recommended)

brew install clouddrove/tap/noddy

This installs a tagged, checksum-verified release along with completions for zsh, bash and fish, and brew upgrade noddy keeps it current.

Install script

The script installs from the default branch rather than a verified release, so prefer Homebrew unless you specifically want the tip of master.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/clouddrove/noddy/master/toyland/setup/install)"

Set NODDY_NONINTERACTIVE=1 to accept the defaults and skip the optional extras.

Then, re-open your terminal client. You will be able to run all the commands listed below, for example:

noddy help


Shell completion

The installer writes completions for zsh, bash and fish into your Homebrew prefix. The command list is read from the noddy script itself, so completions stay current as commands are added.

zsh

Homebrew's site-functions directory has to be on $fpath before compinit runs. If you use Oh My Zsh or already load Homebrew's completions, this is done for you and no change is needed. Otherwise add this to ~/.zshrc:

fpath=("$(brew --prefix)/share/zsh/site-functions" $fpath)
autoload -Uz compinit && compinit

Then start a new shell and press Tab:

noddy git:<Tab>
git:add-removed      git:branch:remove-local   git:log
git:branch           git:branch:remove-remote  git:open
git:branches         git:branch:rename         git:remove
git:branches:date    git:config                git:settings
git:create:branch    git:undo-commit           git:size

If completions do not appear, delete the cache and retry: rm -f ~/.zcompdump && compinit.

bash

Requires bash-completion (brew install bash-completion@2) and its loader in ~/.bash_profile:

[[ -r "$(brew --prefix)/etc/profile.d/bash_completion.sh" ]] && . "$(brew --prefix)/etc/profile.d/bash_completion.sh"

fish

Nothing to configure. Fish reads vendor_completions.d automatically.


Configuration

The configuration is done when you install noddy CLI for the first time though the installer configuration wizard. After that, you can update your noddy CLI configuration by editing the installed script at $(brew --prefix)/bin/noddy, which is /opt/homebrew/bin/noddy on Apple Silicon and /usr/local/bin/noddy on Intel.


Requirements

These are installed on first run, and only when they are not already on your PATH:

  • Homebrew
  • Git
  • Pipe Viewer (pv) - progress bar for tar:compress
  • wget - used by ip:public
  • fdupes - used by find:duplicated

Node and Python are no longer installed up front. They are pulled in only if you opt into Fast CLI or Glances during setup.


Update

If you installed with Homebrew:

brew upgrade noddy

If you used the install script:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/clouddrove/noddy/master/toyland/setup/update)"


Uninstallation

If you installed with Homebrew:

brew uninstall noddy

If you used the install script:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/clouddrove/noddy/master/toyland/setup/uninstall)"


Integrated Projects

The following amazing projects have been integrated on the noddy script (all the integrated projects are optional and can be installed through the installation wizard):


Help / Commands List

Command Description Arguments
noddy help List all available commands in noddy script

General Commands

Command Description Arguments
noddy update Install macOS software updates, then update Homebrew, npm and pip packages
noddy lock Lock
noddy restart Restart macOS
noddy sleep Sleep mode
noddy shutdown Shutdown
noddy presentation Prepare for presenting: minimize all apps, close browsers, send Desktop and Downloads to the Trash. Asks first.
noddy time Show clock at top right position in Terminal/iTerm
noddy screensaver Start screensaver
noddy folders:list List folders in current directory with their current size
noddy folder:size Calculate current folder size
noddy folders:remove-empty Remove empty subdirectories
noddy apps:close-all Force quit all open apps. Asks first.
noddy bluetooth:status Get the bluetooth status
noddy bluetooth:enable Enable bluetooth
noddy bluetooth:disable Disable bluetooth
noddy wifi:status Get the wifi status
noddy wifi:scan Scan available wifi networks
noddy wifi:enable Enable wifi
noddy wifi:disable Disable wifi
noddy wifi:password Get password for current wifi network
noddy dock:add-space Add blank space to dock
noddy apps:app-store Get list of installed apps from App Store
noddy eject-all Eject all removable volumes
noddy battery Get battery status
noddy info Get macOS version information
noddy hidden:show Show hidden files
noddy hidden:hide Hide hidden files
noddy find:text X Find exact phrase recursively inside directory X = Text string
noddy find:biggest-files Find biggest files inside directory
noddy find:biggest-directories Find biggest directories inside directory
noddy zip:extract X Extract Zip file to current folder X = Zip file to extract
noddy gzip:compress X Compress current file using Gzip X = File to compress
noddy gzip:extract X Extract Gzip file to current folder X = Gzip file to extract
noddy tar:compress X Compress X file/directory using tar with progress indicator X = File or directory
noddy tar:extract X Extract tar file to current folder X = Tar file to extract

Search Utilities

Command Description Arguments
noddy find:recent N Find files modified in the last N minutes N = number of minutes
noddy find:duplicated Find duplicated files
noddy search:replace X Search and replace string in file X = File to perform the search and replace operation

Network Utilities

Command Description
noddy speedtest Internet connection speed test
noddy speedtest:infinite Run internet speed test each 5 minutes
noddy ports List of used ports
noddy ip:local Get local IP address
noddy ip:public Get public IP address

SSH Utilities

Command Description Arguments
noddy ssh:download-file X Download file from remote server through SSH X = Path of the remote file to download
noddy ssh:download-folder X Download entire folder from remote server through SSH X = Path of the remote folder to download
noddy ssh:download-database X Download MySQL from remote server through SSH X = Name of the database to download
noddy ssh:sync:local X Sync local folder with remote folder using rsync through SSH (download remote folder to local folder) X = Path of the remote folder to sync to local folder
noddy ssh:sync:remote X Sync remote folder with local folder using rsync through SSH (upload local folder to remote folder) X = Path of the remote folder to sync from local folder
noddy ssh:upload X Upload file to remote server through SSH X = Path of the file to upload to the remote server
noddy ssh:public-key Copy SSH Public Key
noddy ssh:list List hosts defined in ~/.ssh/config and keys in ~/.ssh
noddy ssh:connect X Connect to a configured host X = host name

Performance and maintenance Utilities

Command Description
noddy system Show system information to review mac performance
noddy temp Show temperature, fan and battery statistics
noddy memory See memory usage sorted by memory consumption
noddy trash:empty Empty trash
noddy trash:size Calculate trash size
noddy desktop:cleanup Remove all files and directories from Desktop directory
noddy downloads:cleanup Remove all files and directories from Downloads directory

Git Utilities

Command Description
noddy git:config Display local Git configuration
noddy git:open Open current repository on Github
noddy git:create:branch Create branch based on current branch
noddy git:branches:date Get last update date for all branches in current project
noddy git:undo-commit Undo latest commit
noddy git:log See latest commits IDs and titles for current branch
noddy git:branch See all branches
noddy git:branch:rename Rename Git branch
noddy git:branch:remove-local Remove local Git branch
noddy git:branch:remove-remote Remove local and remote Git branch
noddy git:remove Remove Git from current project
noddy git:settings Check Git settings
noddy git:add-removed Add removed files to staged files
noddy git:size Get size for current Git directory

Docker Utilities

Command Description
noddy docker:list List all containers
noddy docker:images List all images
noddy docker:stop Stop all running containers
noddy docker:remove Remove all containers
noddy docker:remove-images Remove all images
noddy docker:prune Remove unused docker data
noddy docker:start Start Colima or Docker Desktop
noddy docker:restart Restart Colima or Docker Desktop

Homebrew Utilities

Command Description
noddy brew:update Install macOS software updates, then update Homebrew, npm and pip packages

Xcode Utilities

| ------------- | ------------- | | noddy xcode:cleanup | Cleanup Xcode files to free up hard disk space |

TODO

Add support for

  • Docker
  • Ansible
  • Terraform

👬 Contribution

  • Open pull request with improvements
  • Discuss ideas in issues
  • Reach out with any feedback Twitter URL

About

bot for OS X

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages