Commit 2d1deeb5 authored by Stephen M. Coakley's avatar Stephen M. Coakley Committed by GitHub

Replace package database with independently installed package repositories (#427)

Replace package database with independently installed package repositories

- Add support for fetching and installing from package repositories containing package URLs and metadata
- Support multiple package repository sources
- Add new repo command
- Remove submit command
- Enhance describe and search commands
- Fix and improve help text for new and adjusted commands
- Fix bundle install exit status
- Refer to plugins as "plugins" instead of the general term "packages"
- Code clarity improvements
- Put plugin/theme distinction into package metadata
parent e2c3343e
...@@ -50,7 +50,7 @@ Oh My Fish includes a small utility `omf` to fetch and install new packages and ...@@ -50,7 +50,7 @@ Oh My Fish includes a small utility `omf` to fetch and install new packages and
#### `omf update` _`[omf]`_ _`[<package>...]`_ #### `omf update` _`[omf]`_ _`[<package>...]`_
Update the framework and installed packages. Update Oh My Fish, all package repositories, and all installed packages.
- When called without arguments, update core and all installed packages. - When called without arguments, update core and all installed packages.
- You can choose to update only the core, by running `omf update omf`. - You can choose to update only the core, by running `omf update omf`.
...@@ -64,6 +64,10 @@ Install one _or more_ packages. ...@@ -64,6 +64,10 @@ Install one _or more_ packages.
- You can install packages directly by URL via `omf install URL` - You can install packages directly by URL via `omf install URL`
- When called without arguments, install missing packages from [bundle](#dotfiles). - When called without arguments, install missing packages from [bundle](#dotfiles).
#### `omf repositories` _`[list|add|remove]`_
Manage user-installed package repositories. Package repositories are where packages come from used by commands like `omf install`. By default the [official repository](https://github.com/oh-my-fish/packages-main) is always installed and available.
#### `omf list` #### `omf list`
List installed packages. List installed packages.
...@@ -94,13 +98,6 @@ Scaffold out a new package or theme. ...@@ -94,13 +98,6 @@ Scaffold out a new package or theme.
Searches Oh My Fish's database for a given package, theme or both. It also supports fuzzy search, so if you are not sure of the name you can simply `omf search simple`. Searches Oh My Fish's database for a given package, theme or both. It also supports fuzzy search, so if you are not sure of the name you can simply `omf search simple`.
#### `omf submit` _`pkg/<name>`_ _`[<url>]`_
Add a new package. To add a theme, use `omf submit` _`themes/<name>`_ _`<url>`_.
Please note that the _`[<url>]`_ portion of the command should be the url to your repo on github. For example, with the `example` plugin, the command run should be `omf submit pkg/example https://github.com/oh-my-fish/example`.
Make sure to [send us a PR][omf-pulls-link] to update the registry.
#### `omf channel` #### `omf channel`
Gets or changes the update channel. Gets or changes the update channel.
......
...@@ -489,7 +489,7 @@ end ...@@ -489,7 +489,7 @@ end
# Assert that all tools we need are available. # Assert that all tools we need are available.
function assert_cmds function assert_cmds
set -l cmds basename cp cut date dirname fold head mkdir mv rm sed sort tar tr set -l cmds awk basename cp cut date dirname fold head mkdir mv rm sed sort tar tr
for cmd in $cmds for cmd in $cmds
type -f -q $cmd type -f -q $cmd
......
https://github.com/oh-my-fish/plugin-android-sdk
https://github.com/pkg-gretel/pkg-ansible
https://github.com/oh-my-fish/plugin-apt
https://github.com/oh-my-fish/plugin-archlinux
https://github.com/oh-my-fish/plugin-argu
https://github.com/thecotne/omf-plugin-artisan
https://github.com/oh-my-fish/plugin-await
https://github.com/oh-my-fish/plugin-aws
https://github.com/oh-my-fish/plugin-bak
https://github.com/oh-my-fish/plugin-balias
https://github.com/oh-my-fish/plugin-bang-bang
https://github.com/oh-my-fish/plugin-basename-compat
https://github.com/oh-my-fish/plugin-battery
https://github.com/devert/plugin-blt
https://github.com/oh-my-fish/plugin-brew
https://github.com/oh-my-fish/plugin-bundler
https://github.com/oh-my-fish/plugin-cd
\ No newline at end of file
https://github.com/oh-my-fish/plugin-composer
https://github.com/oh-my-fish/plugin-config
https://github.com/oh-my-fish/plugin-direnv
https://github.com/oh-my-fish/plugin-docker-machine
https://github.com/oh-my-fish/plugin-dpaste
https://github.com/oh-my-fish/plugin-emacs
https://github.com/oh-my-fish/plugin-errno
https://github.com/oh-my-fish/plugin-exenv
https://github.com/oh-my-fish/plugin-expand
https://github.com/jcouyang/plugin-export
https://github.com/pkg-gretel/pkg-extract
https://github.com/oh-my-fish/plugin-fasd
https://github.com/HenrikWL/plugin-fish_logo.git
https://github.com/derekstavis/plugin-fonts
https://github.com/oh-my-fish/plugin-foreign-env
https://github.com/gretel/pkg-fzf
https://github.com/oh-my-fish/plugin-gem
https://github.com/oh-my-fish/plugin-getopts
https://github.com/oh-my-fish/plugin-gi
\ No newline at end of file
https://github.com/oh-my-fish/plugin-git-flow
https://github.com/oh-my-fish/plugin-gityaw
https://github.com/oh-my-fish/plugin-grc
https://github.com/oh-my-fish/plugin-hash
https://github.com/lfiolhais/plugin-homebrew-command-not-found
https://github.com/pkg-gretel/pkg-hub
https://github.com/belltoy/plugin-iex
https://github.com/oh-my-fish/plugin-jump
https://github.com/pkg-gretel/pkg-keychain
https://github.com/vincentjames501/fish-kill-on-port
https://github.com/oh-my-fish/plugin-license
https://github.com/oh-my-fish/plugin-linuxbrew
https://github.com/oh-my-fish/plugin-local-config
https://github.com/oh-my-fish/marlin
https://github.com/belltoy/plugin-mix
https://github.com/oh-my-fish/plugin-mou
https://github.com/benc/pkg-mvn
https://github.com/oh-my-fish/plugin-node-binpath
https://github.com/oh-my-fish/plugin-nodenv
https://github.com/derekstavis/plugin-nvm
https://github.com/oh-my-fish/plugin-osx
https://github.com/oh-my-fish/plugin-pbcopy
\ No newline at end of file
https://github.com/oh-my-fish/plugin-peco
https://github.com/rzyns/pkg-php-version
https://github.com/oh-my-fish/plugin-phpbrew
https://github.com/oh-my-fish/plugin-pj.git
https://github.com/iamruinous/plugin-powerline
https://github.com/oh-my-fish/plugin-proxy
https://github.com/oh-my-fish/plugin-pyenv
https://github.com/oh-my-fish/plugin-python
https://github.com/oh-my-fish/plugin-rails
https://github.com/oh-my-fish/plugin-rbenv
https://github.com/oh-my-fish/plugin-rustup.git
https://github.com/oh-my-fish/plugin-rvm
https://github.com/oh-my-fish/plugin-spark
https://github.com/oh-my-fish/plugin-ssh-config.d
https://github.com/wk/plugin-ssh-term-helper
https://github.com/oh-my-fish/plugin-sublime
https://github.com/oh-my-fish/plugin-sudope.git
https://github.com/oh-my-fish/plugin-tab
https://github.com/oh-my-fish/plugin-technicolor
https://github.com/sagebind/plugin-termux
https://github.com/oh-my-fish/plugin-thefuck
https://github.com/oh-my-fish/plugin-tiny
https://github.com/oh-my-fish/plugin-title
https://github.com/sagebind/tmux-zen
https://github.com/oh-my-fish/plugin-vcs
https://github.com/oh-my-fish/plugin-vi-mode
https://github.com/oh-my-fish/plugin-virtualfish.git
https://github.com/oh-my-fish/plugin-vundle
https://github.com/fischerling/plugin-wd
https://github.com/oh-my-fish/plugin-weather
https://github.com/oh-my-fish/plugin-wifi-password
https://github.com/oh-my-fish/plugin-wttr
https://github.com/oh-my-fish/plugin-z
https://github.com/oh-my-fish/theme-agnoster
https://github.com/oh-my-fish/theme-batman
https://github.com/oh-my-fish/theme-beloglazov
https://github.com/oh-my-fish/theme-bira
https://github.com/oh-my-fish/theme-bobthefish
https://github.com/oh-my-fish/theme-budspencer
https://github.com/oh-my-fish/theme-cbjohnson
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment