Skip to content

Never use notepads or history for searching for your past commands. With BME you can bookmark your commands, search in your bookmarked commands and execute them with edit possibility before execution.

License

Notifications You must be signed in to change notification settings

jiri-otoupal/BME

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BME

(Bookmark my Executions/Commands)

Never use notepads or history for searching for your past commands. With BME you can bookmark your commands, search in your bookmarked commands and execute them with edit possibility before execution.

image PyPI - Python Version Downloads

Supported

OS

No specific requirements here, whatever runs Python

Requirements

Python

  • 3.7+

Installing

MacOS

On most MacOS machines there is pip3 instead of pip use pip3 for install

Install and update using pip:

pip install bme

or

pip3 install bme

All your commands are saved in '~/.bme/bookmarks.json'

Usage:

For adding bookmark:

(Quotas can be used)

bme add <your command>

For Removing bookmark:

(Quotas can be used)

bme rm <your command>

For List bookmarks:

(Quotas can be used)

bme list <searched>
  • searched is optional, only if you want to list specific commands
  • Regex, match case and full word flags are supported

For Executing bookmark:

Basic search bme run <searched>

Regex search bme run <searched> -r <my-regex*>

Formatting support:

You can format command from bookmark with python formatting as such

  • Use {} to be placeholder for your tuple arguments
  • Use {name} to be placeholder with key name for your dictionary arguments

Mixing tuple and dict arguments is not supported!

Example:

Tuple:

bme add echo "Hello {} !"
bme run ec Jiri

Dictionary arguments:

bme add echo "Hello {name} from {location}"
bme run ec name=Jiri location=Prague

or

bme run ec name=\"Jiri\" location=\"Prague\"
Optional flags:

"-e" or "--edit" for editing command before execution

"-r <your-regex>" or "--regex <your-regex>" for full word search only

"-f" or "--full-word" for full word search only

"-m" or "--match-case" for search with matching case

(Quotas can be used)

bme run <your command>

Sequences

Sequences are like scripts, except you don't have to search for location and manage them with different .bashrc or different OS specific files. Also thanks to this, you don't have to add them to PATH.

BME will take care of storing your sequences in your ~/.bme folder and will help you to search in them. These sequences work from everywhere and execution is always in your current working directory.

Commands:

Create Sequence

bme seq create {name}

Example:

bme seq create my_sequence

Remove Sequence

bme seq rm {name}

Example

bme seq rm my_sequence

Edit Sequence

bme seq edit

This will display location of json with sequences

Add Command to Sequence

This will add command to sequence with use of variadic arguments

bme seq add {sequence_name} {command...}

Example:

bme seq add my_sequence ssh jiri@192.168.1.0

Pop Command from Sequence

This will pop command from sequence with use of variadic arguments

bme seq pop {sequence_name} {command...}

Example:

bme seq pop my_sequence ssh jiri@192.168.1.0

Sequence Run

Runs supplied sequence, and will do search for you if not found

bme sequence run {sequence_name}

Sequence does support formatting of dynamic arguments same way as bookmarks these arguments will be passed to every command for formatting

Example:

bme sequence run my_sequence John

or

bme sequence run my_sequence name=John

Sequence Watch (!BETA!)

Launches sequence on file modify

bme sequence watch {sequence_name} {file_path}

List Sequence

This will list commands and sequences, if argument is used search in text is applied to results

Optional flags:

"-r <your-regex>" or "--regex <your-regex>"` for full word search only
"-f" or "--full-word" for full word search only
"-m" or "--match-case" for search with matching case

Example Data:

In sequence DB there is:
 'ssh jiri@192.168.1.0' command
 'ssh jiri@192.168.1.55' command
 'scp jiri@192.168.1.55' command

Command bme sequence list will list all the sequences and their commands

Specific listing format:

bme sequence list <optional commands that match this to list>

Example:

bme sequence list ssh

Output:

'ssh jiri@192.168.1.0' command
'ssh jiri@192.168.1.55' command

Did I made your life less painful ?

Support my coffee addiction ;)
Buy me a Coffee

About

Never use notepads or history for searching for your past commands. With BME you can bookmark your commands, search in your bookmarked commands and execute them with edit possibility before execution.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages