Commit Graph

182 Commits (master)

Author SHA1 Message Date
Derek Stavis 7ccdada8c6 omf install: Don't refresh when nothing installed 9 years ago
Bruno Pinto e234aab3c6 Remove .git$ from name when installing from URL
Support `omf install https://github.com/oh-my-fish/plugin-jump.git`
9 years ago
Bruno Pinto cc7b321268 Create `omf.update` function
Update and install were one thing before.
9 years ago
Bruno Pinto c346731743 Simplify install command
- Install does not do update.
- Share code when installing from URL or name.
9 years ago
Derek Stavis 67c07cb6f6 Fixes a regression in update process added in #115
As #115 migrated list functions, after updating Oh My Fish code
the omf.list_installed_packages gets removed, but is still being
used by the update code.

This commit fixes it by providing a wrapper function.
9 years ago
Bruno Pinto 870efd0dda Merge all omf list functions 9 years ago
Bruno Pinto 7025525ef1 Simplify `omf cd` code
This also namespace the function to `omf.packages`.
9 years ago
nwykes ffa6338664 update some cli completions: remove query and version. add doctor 9 years ago
Derek Stavis ea0b464f1d omf.theme: Rework theme activation code
- Move theme installation to cli entry point (omf.fish)
- Generalize XDG_CONFIG_HOME code in `omf.xdg.config_home`
- Generalize prompt conflicts check in `omf.checks.fish_prompt`
  * Migrate `omf.doctor` to use it

+ Change theme activation steps
  - Create user function path if not existent
  - Check for conflicts in fish_prompt, aborts if found
  - Remove current theme from autoloading paths
  - Add target theme to autoloading paths
  - Link target theme's fish_prompt to user's
  - Persist selected theme to $OMF_CONFIG/theme

This approach brings two major advantages:

- Theme prompt now shows accordingly in fish_config web interface
- Faster theme changes, reducing it from seconds to some milis
- Avoids calling refresh, which makes users much more happy
9 years ago
Derek Stavis a99e3ce86a omf.install: Fix success/error return codes
Return 0 when package installs, != 0 on error
9 years ago
Derek Stavis 291d0c9784 bundle.add: fix theme being persisted twice
`omf theme` was persisting the installed theme twice, one time on
`omf.install` and other time on `omf.bundle.add`.
9 years ago
Derek Stavis 05f3be01be destroy: Revert fish_prompt backup when found
Works toward generalizing the backup restoration logic using a
function, then restoring both config.fish and fish_prompt.
9 years ago
Bruno Pinto 653f173971 Forgot to suppress error message 9 years ago
Bruno Pinto 1ab8a20b8c Fix #8: Fishy plugin template 9 years ago
Bruno Pinto 520d597947 Source `uninstall.fish` file before emitting event
Instead of having every plugin function inside the same file, which
increases the loading time unnecessarily and is not fishy, source the
`uninstall.fish` file for the plugin before the `uninstall_$plugin_name`
event is emitted.
9 years ago
Bruno Pinto bc0d4847e8 Resolve #30: omf doctor command
In order to pro-actively diagnose an issue on someone's computer, a
`omf doctor' command is being added. This command will initially check
errors that could cause a theme to not be loaded, but in the future more
checks are going to be added to prevent issues from being created for
problems that are fixable by the Oh My Fish user alone.
9 years ago
Bruno Pinto cf8a24deed Only emit uninstall_* event on `omf destroy`
When calling `omf destroy`, the `bundle` file is completely erased
because we are calling `remove_package` on each installed package. We
don't want to erase that file, we just want to emit the event and later
on remove the code, which is done with `rm -rf "$OMF_PATH"`.
9 years ago
Bruno Pinto 46e4d036ba Organize commands and remove undocumented aliases 9 years ago
Bruno Pinto 319c8a05cd Don't overwrite function on test environment
Instead of overwriting functions that use `exec fish` on test
environment, skip this call if the variable `CI` has been defined on the
running shell.
9 years ago
Bruno Pinto e2a7f7d229 Split into init.fish and omf.fish files 9 years ago
Bruno Pinto 9cc8ee5a82 Stash does not support --git-dir
Stash is a shell script that does not support `--git-dir`, not even on
latest versions. We need to use `git -C` which was only added on recent
versions of `git`.

`omf update` will fail in case omf need needs to run `git stash` and
git is not compatible.
9 years ago
jeremiejig 56b1d837e0 changing to git -C to git --git-dir work-tree 9 years ago
jeremiejig 5cdde2639a bin/install & omf.repo.pull adding -C $git_dir removing pushd and popd 9 years ago
jeremiejig 773f1010b9 omf.destroy: find the most recent backup of config.
using XDG_CONFIG_HOME
9 years ago
jeremiejig b9c1bd9576 Fixing how omf remove work, and omf.remove_package
destroy was broken because of a premature refresh. (giving false hang
behaviour)
9 years ago
jeremiejig 8d1b4dc897 Using raw `name_or_url` instead of `name`. 9 years ago
Derek Stavis de9955e025 omf.bundle.install: sort the bundle after install 9 years ago
Derek Stavis d3ace4fd81 omf.bundle.install: replace `uniq` by `sort -u` 9 years ago
Derek Stavis 56bc40bde9 omf.bundle.remove: return 0 when done 9 years ago
Derek Stavis b20f8dd141 omf.bundle.remove: replace `uniq` by `sort -u` 9 years ago
Derek Stavis 00e3d3e058 omf.bundle.add: sort the bundle after adding entry 9 years ago
Derek Stavis a71bc714f4 completions: use standard fish functions for subcommands 9 years ago
Derek Stavis c929fa41ab bundle: move related functions to omf.bundle namespace 9 years ago
Bruno Pinto 61f71f3ce8 Replace `omf.update` with `omf.repo.pull`
- Pull repository from origin unless upstream exist.
9 years ago
Bruno Pinto 890104ab2e Extract git clone calls into `omf.repo.clone` 9 years ago
Bruno Pinto af49d6f1c2 Replace `omf.util_sync` with `omf.repo.pull`
Based on
https://github.com/Homebrew/homebrew/blob/master/Library/Homebrew/cmd/update.rb#L175-L221
9 years ago
Bruno Pinto 2a0e5ba7cc Remove unused `util_fork_repo` function. 9 years ago
Bruno Pinto 033d976dee Extract _write_bundle to omf.persist
- Add support for persisting theme information.
- Use documented private function naming scheme.
9 years ago
Bruno 75594ea4e2 Merge pull request #20 from scorphus/typos
Fix a typo: succesfully => successfully
9 years ago
Pablo Santiago Blum de Aguiar 59491926af Fix a typo: succesfully => successfully 9 years ago
Bruno Pinto 905f6afa73 Remove pkg-/theme- from folder name
When installing packages (plugins) or themes using a URL, we should
strip the plugin-/pkg-/theme- from the repository name if it exists.
9 years ago
Bruno Pinto b36bc03eb0 Remove global OSTYPE variable. 9 years ago
Bruno Pinto ae0e4388b6 Back to oh-my-fish organization 9 years ago
Bruno Pinto 7dad917436 Make `default` theme the default theme for omf.
* On clean install, configure and download `default` theme.
* Do not allow `default` theme to be removed.
* When the current theme is removed, fallback to `default`.
9 years ago
Derek Stavis a76485be4f omf.help: update install command usage 9 years ago
Derek Stavis 0a195572a1 omf: install without arguments installs bundle 9 years ago
Derek Stavis c6df5feba5 omf.remove_package: also remove from bundle 9 years ago
Derek Stavis 2535892c87 omf.install: insert installed packages into bundle 9 years ago
Derek Stavis e8dcbb507b omf: add install_bundle function 9 years ago
Bruno 98870e8720 Merge pull request #574 from sheldon/describe-without-ruby
describe without ruby
9 years ago
Sheldon Els 99193d0e3a describe without ruby
no dependency on ruby & a little quicker. all credit to @derekstavis for the
cool regexs
9 years ago
Sheldon Els 633e52101b describe works on installed packages
also modified list_db_packages to return all packages by default, but with a
skip_installed to skip listing installed packages
9 years ago
Sheldon Els 04e86fa00d autocomplete help 9 years ago
Gabriel Marquez 3acfae98b1 implements help for commands 9 years ago
Bruno Pinto 6f4368870e Fix #545: Remove custom packages and themes
Remove function was not deleting packages and themes from the OMF_CONFIG
folder.
9 years ago
Sheldon Els 00701642e8 info command
to easily see from commandline what each package does via their descriptions
on github
9 years ago
Bruno Pinto 130fc2119d Forgot to add `omf cd` on help. 9 years ago
Bruno Pinto 7706d848cc Fix dim color that was the same as em 9 years ago
Bruno Pinto ecb9dfa0a9 `omf cd` command for changing directories.
Jump around Oh My Fish packages and themes using `omf cd <name>`. If no
<name> is specified, jump to oh my fish root folder.
9 years ago
Bruno Pinto 62a45e9ec2 Convert version and help into options
Instead of clobbering the actions with both version and help, use
options instead. They are also going to be used for subcommands (e.g.
omf list --help) once they support options.
9 years ago
Bruno Pinto 2222db74d8 Change theme when creating a new theme
We already change the current directory to the theme dir, to make it
easier for development, we also change the current theme.
9 years ago
Jorge Bucaran d107b2ec1e simplify color setters 9 years ago
Bruno Pinto 0767b2a72f Fish < 2.2 does not support argument for set_color
The second argument (background) was added on fish 2.2
9 years ago
Wes Morgan c6e72863bd centralize pkg / theme installation 9 years ago
Bruno Pinto bfe77b6273 Handle scenarios where colors are not defined.
Fish should set default colors:
b32f770a69/share/functions/__fish_config_interactive.fish

But in case some users don't have these color variables set, use their
defaults values.
9 years ago
Bruno Pinto 20ed43983b Naming functions with `omf.` namespace.
Having a clear namespace `omf.` improves the readability of the code as
we clarify what is the function name and what is the namespace.
9 years ago
Bruno Pinto 2ecc1fc100 Use fish's colors
Instead of using custom colors, reuse fish's colors.
Original fish colors here:
4d628d5f43/functions/restore_original_fish_colors.fish
9 years ago
Wes Morgan 2564e7446c refresh after installing package or theme
The functions themselves no longer do that.
9 years ago
Wes Morgan 718ba2fc10 don't refresh in omf_theme
Leave that up to the caller.
9 years ago
Wes Morgan 4809687b52 don't refresh in omf_install_package
Leave that up to the caller.
9 years ago
Bruno Pinto b5591c97d0 Improve template README
Layout and links
9 years ago
Justin Hileman 0359ba047c Merge `$OMF_CONFIG` and `$OMF_CUSTOM`.
Per conversation with @bpinto in Gitter.

There's no need for two separate directories. You don't have a `.git` and `.git-custom` folder, you just put your config in `.git` :)

The most straightforward interpretation of XDG basedir spec is that user configuration for omf would go in `~/.config/omf`, so let's put it there. The only question is whether omf-generated config (i.e. the `theme` file) should go there as well. By analogy with git, programmatically generated config should probably be merged in with user config. This also makes it so when a user clones their dotfiles to a new machine, both kinds of settings come with it.
9 years ago
Jorge Bucaran a1c319db73 fix template generator using incorrect variable USERNAME → USER 9 years ago
Jorge Bucaran fa46c0118e Merge pull request #519 from fish-shell/get-renamed-to-install
Rename 'get' to 'install'
9 years ago
Jorge Bucaran c855e0024c fix omf new theme and remove default theme 9 years ago
Bruno Pinto 24ab9a991b Rename 'get' to 'install'
We already use 'install' on the command description: 'Install one or
more packages.'

Also call update using 'u' instead of 'p'.
9 years ago
Bruno Pinto 7f53f59ee6 Remove unused code
`default` was doing nothing.
9 years ago
Jorge Bucaran c480308889 remove references to `wa` 9 years ago
Jorge Bucaran ed688aac2d fix use of older omf_use in omf_remove_package 9 years ago
Bruno Pinto a9df3e1e98 Rename `omf use` to `omf theme`.
The first time I saw `use`, I thought I could use the command for
everything, including packages, but it's only used for themes. So, it's
better to have a clearer name.
9 years ago
Jorge Bucaran e68f83ffeb fix omf_get_package typo 9 years ago
Jorge Bucaran 2693a2fd18 %%% United States of the Fish → Wahoo + OMF %%% 9 years ago