Skip to content

Latest commit

 

History

62 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

About

Shundle is short for sh bundle and is a sh plugin manager.

shundle

Quick start

  1. Set up Shundle:

    $ git clone --depth=1 https://github.com/javier-lopez/shundle ~/.shundle/bundle/shundle
    
  2. Configure bundles:

    Sample .bashrc (if not using bash use your shell init profile):

    if [ -f ~/.shundle/bundle/shundle/shundle ]; then
        .  ~/.shundle/bundle/shundle/shundle
        #let shundle manage shundle, required!
        Bundle='javier-lopez/shundle'
            #options
            SHUNDLE_ENV_COLOR=1
    
        #from GitHub
        Bundle='gh:javier-lopez/shundle-plugins/eternalize'
        Bundle='github:javier-lopez/shundle-plugins/colorize:master'
        Bundle='github:javier-lopez/shundle-plugins/autocd:f7916'
        Bundle='https://github.com/javier-lopez/shundle-plugins/aliazator.git'
            ALIAZATOR_PLUGINS="installed"
    
        #run once, after the bundle is cloned or updated
        Bundle='gh:javier-lopez/shundle-plugins/eternalize'
            PostInstall='wget -qO- https://github.com/junegunn/fzf/releases/download/v0.74.4/fzf-0.74.4-linux_amd64.tar.gz | tar xz -C ~/.local/bin fzf && chmod +x ~/.local/bin/fzf'
    
        #a repository of commands
        Bundle='gh:javier-lopez/learn'
            #SHUNDLE_BIN="${HOME}/.bin" #where Expose links their commands
            Expose="sh/tools"                                 #the whole directory
            Expose="perl: !simple-cat !simple-grep"           #all of it but those
            Expose="python/tools: mailgun monkey_typewriter"  #only those
            Expose="python/tools: mailgun simple-*"           #names and patterns
            Expose="perl: !simple-*"                          #patterns exclude too
            Expose="sh/tools/ports"                           #a single file
    
        #from non GitHub
        #Bundle='git://git.domain.com/rep.git'
    
        #from the web
        #Bundle='http://domain.com/awesome-script'
    
        #from the file system
        #Bundle='file://path/to/script'
    fi
    
    # Brief help
    # shundle list   [bundle]        - all of them, or one in full
    # shundle install      - install configured bundles
    # shundle update [bundle|script] - everything, or a piece
    # shundle clean        - drop bundles and links the rc file stopped asking for
    #
    # run shundle without parameters for more details or see the wiki for FAQ
    #
  3. Install configured bundles:

    $ . ~/.bashrc
    $ shundle install
    $ . ~/.bashrc
    

    Installation requires Git and triggers git clone for each configured repo to ~/.shundle/bundle/.

Uninstalling

If by any reason you dislike Shundle you can uninstall it by removing the top shundle directory:

$ rm -rf ~/.shundle

Please drop me an email with your suggestions or open an issue describing the problems you faced.

Contributors

See Shundle contributors

Thank you!

Inspiration and ideas from

Also

  • Shundle was developed and tested with Bash 4.2 on Linux
  • Shundle will try to run in as many platforms & shells as possible
  • Shundle tries to be as KISS as possible

TODO:

Shundle is a work in progress, so any ideas and patches are appreciated.

  • write documentation
  • improve install|update visualization
  • tests
  • improve error handling
  • make it rock!

About

shundle is a plugin manager for general purpose shells

Resources

Stars

85 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages