Code Monkey home page Code Monkey logo

zulu's Introduction

Zulu

Zulu: GitHub release Build Status | Index: Build Status | Join the chat at https://gitter.im/zulu-zsh/zulu

Thanks for using Zulu. Zulu is a environment manager for ZSH, which aims to make it easy to manage your shell without writing any code.

Features

  • Easily manage your shell environment without editing files.
  • Create aliases, functions and environment variables, and have them available to you at the next shell startup.
  • Add and remove directories from $path, $fpath and $cdpath with simple commands.
  • Install packages, plugins and themes easily, and have them available to you immediately.

Requirements

  • ZSH 5.0.2 or above
  • git 1.9.1 or above

Installation

Zulu comes with its own install script, which is the recommended method of install.

curl -L https://zulu.molovo.co/install | zsh && zsh

If you'd rather not pipe a script into ZSH, take a look at the manual installation process.

Usage

For detailed usage instructions, take a look at Zulu's official documentation

Contributing

All contributions are welcome, and encouraged. Please read our contribution guidelines and code of conduct for more information.

License

Copyright (c) 2016 James Dinsdale [email protected] (molovo.co)

Zulu is licensed under The MIT License (MIT)

Icon is Shield by Ivan Colic from The Noun Project

Team

zulu's People

Contributors

adrieankhisbe avatar dritter avatar gitter-badger avatar molovo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zulu's Issues

Deprecate `zulu install` without arguments

zulu install without arguments currently installs the contents of the package file. It throws errors for packages which are already installed, which we should keep when the name of an installed package is passed via the CLI.

Proposing a zulu bundle command a la @Homebrew for dealing with installing packages from the package file, so that this and other configuration can still be synced.

Usage:

  • zulu bundle - install all packages from packagefile
  • zulu bundle --cleanup - uninstall any packages not included in the packagefile
  • zulu bundle --dump - dump all installed packages to packagefile

Project Logo

I'd like to take another look at designing a logo for Zulu. The current icon is just something I found quickly on The Noun Project. Would be nice to have something unique, and then I'll look at some changes to the website to incorporate it.

Add anonymous usage analytics

This can be disabled in config file (requires #66), to protect user privacy.

Need to find a (free) provider with a flexible enough API to record events using curl command from the CLI

Index packages

Hi @molovo,

I have created some plugins (zulu- prefixed) and published them under my github account. If you wanna have a look and decide that they can make it to the official zulu distro, let me know and I will prepare them accordingly (documentation, comments etc). I keep their respective index files locally though, happy to provide them in any case.

Cheers!

Dependency installation fails occasionally

There seems to be an issue with the new zui and zbrowse packages. Installing zui on its own works, but when it is installed as a dependency of zbrowse it tries to clone the repository molovo/zui rather than the correct zdharma/zui.

Affects both master and next branches.

Parse Error at install

While trying to install I get the following error:

/Users/abecchis/.zulu/core/zulu
/Users/abecchis/.zulu/core/zulu:2355: parse error near `>&'
/Users/abecchis/.zshrc:335: command not found: zulu
zsh --version
zsh 5.1.1 (x86_64-apple-darwin15.0.0)

Running zulu init script breaks autocompletion with zsh 5.7.1 and oh-my-zsh

Running the initialization script will prompt the following error message:

zulu init ✔ Switched to Zulu master _zulu_init_setup_completion:9: compinit: function definition file not found _zulu_init:61: promptinit: function definition file not found zsh: prompt: command not found...

then autocompletion fails with
expand-or-complete-with-indicator:3: _main_complete: function definition file not found

Implement logging using lumberjack

This got left out of v1.0, investigating putting it back in now. Hopefully will help with debugging issues. Will log critical errors and above by default, and everything else with a --verbose flag on init.

zsh-syntax-highlighting and zsh-history-substring-search

Hi,

I was wondering whether the _zulu_init_setup_history function in the init command is respecting the order that zsh-history-substring-search is sourced, in case the zsh-syntax-highlighting package is also installed.

I came down to this sort of investigation after struggling with the zsh-history-substring-search itself: To my understanding, if you have installed it, it will be loaded with the rest of the packages after the _zulu_init_setup_history -- which will exit unless the widget is defined. However, this will be defined during the package load. I had to source the zsh-history-substring-search before line 175. Have you noticed that or am I totally losing it?

In any case, you have build a very comprehensive framework here, lightweight and pretty much extensible.

Thanks! Happy new year!

Docs are unavailable

Site from readme is down.

This site can’t be reached
zulu.sh’s server IP address could not be found.
DNS_PROBE_FINISHED_NXDOMAIN

Look into compiling source to speed up load time

I've got two branches open currently to look into this:

  • experimenting_with_compiling moves the core into a src folder, and adds a build script which concatenates the entire source into a single file, and then runs zcompile on it. It also compiles all executable scripts and autoloadable functions in packages when they are linked.
  • experimenting_with_lazy_loading simply defers the loading of internal commands until they are called, rather than loading them on zulu init.

I would have expected both the above methods to have had some effect on startup time, but actually they both made it slower, which surprised me. If anyone has any ideas on how either of the above methods could be used to improve performance (or any other suggestions), please let me know.

can't keep theme setting after zulu upgrade

before running zulu upgrade, I was using agnoster as my theme. however, zulu change the theme to default theme after zulu upgrade.
this also reminds me there's no auto-completion when I pressing tab after zulu theme

Speed up list command

The zulu list command has become quite slow, which makes completion output very slow when the completion cache is empty. Should look into improving its performance.

Store branch/tag in packagefile if one is set when installing

If a package is set to a specific branch/tag using zulu install --branch <branch> <package>, the requested branch or tag is not saved to the packagefile alongside the package name. This means that when syncing, a package can be installed with a specific branch on one machine, but when zulu bundle is run on another synced machine, it will use the master branch, rather than the correct one.

Remove post-install script functionality

Could be dangerous if a package maintainer decides to take advantage of it. Bearing in mind there aren't any packages that actually require this yet, it can be removed

zulu bundle --dump fails

Running zulu bundle --dump or zulu bundle --dump --force fails with the following error message:

_zulu_bundle_dump:local:1: not valid in this context: command-not-found

Loading Zulu breaks spaceship prompt

If I load zulu, when I press tab and there are multiple options, part of the spaceship prompt gets erased.

Tested using the latest versions of everything: zsh, prezto, zgen, zulu and spaceship prompt

Revolver polyfill leaves unnecessary notices in output

The polyfill currently prints out the message that would be displayed next to the spinner if revolver were installed, but these are then left in the output. Would be cleaner to just use an empty function instead of printing the message so that only success/error messages are left in the output.

Add ‘sync’ command

Zulu was built to support syncing environment configuration between different machines, but this has always been an external process. Would be nice to add a sync command, which pushes the contents of ~/.config/zulu to a git repository, and pulls changes.

Adding a --sync option to zulu init to automatically pull changes to the repository on startup would be a nice touch too.

Improve performance of upgrade command

Currently the upgrade command is very slow, as it has to perform a fetch on each package repository before it can check for changes.

One possibility might be asynchronously fetching from each of the repositories on init, and keeping a log of the last fetch timestamp for each of them, then only performing the fetch again if the fetch is older than x amount of time (probably an hour should be enough).

Any ideas welcome.

Replace realpath with readlink

realpath isn't avaliable on all systems, so we should replace it with readlink. Need to be careful, as readlink returns false for directories, so need to find something supportable to use in the zulu link function.

Support ZSH 5.0.7+

Zulu currently breaks (on install and usage) in 5.0.7 which is the default for most Mac and Linux installations. Currently only 5.1+ is supported, but we should aim to change this

Package Index types

Hi there, wishes for happy holidays!

I have noticed that the completions index references a 'completion' type.

Is this functionality of a private nature and thus didn't make it to the index docs?

Error: Failed to reset Zulu repository

When installing Zulu for the first time, I got this error in the installation process:

[...]
✔ Build script complete
HEAD is now at b91f492ddb96 Ensure default branch is used unless specified
Failed to reset Zulu repository

And every time I open a Terminal window/tab, I get the same error.
This said, when browsing and checking the git status of /core/ and /index/ in the ZULU_DIR, both seem to be correctly synced to upstream master.

Enable beta versions

Investigate adding a --beta flag on init, which will check the current branch and checkout the latest pre-release tag if not already checked out.

Revolver process gets orphaned if package is uninstalled

Uninstalling the revolver package causes the revolver process to be orphaned, leaving the spinner running infinitely.

Can be resolved by checking for the PID file at ~/.revolver/$PID within the polyfill function and removing it if the file exists but revolver is not installed.

unlink not happening while uninstalling

whenever I uninstall a package, the corresponding init file is not unlinking itself.

I had to manually run the unlink command initially and then uninstall the package or delete the file manually.

I see the code for unlinking is there, not sure why not happening though

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.