Commit graph

242 commits

Author SHA1 Message Date
Jorge Bucaran
1bd12771e7
don't try to install a package from an invalid specifier; fix #454 2018-10-06 02:57:57 +09:00
Jorge Bucaran
25661f77cf
3.0.1 2018-10-06 02:23:12 +09:00
Jorge Bucaran
444a8fee8c
fix: create fishfile automatically; close #451
- create fishfile if one doesn't already exist
- only read from stdin when using `add` or `rm` commands
- show help if unknown command is entered
- show error message when fishfile is empty and no packages
  were added, removed or updated
2018-10-06 02:20:08 +09:00
Jorge Bucaran
4e4c2a9524
hotfix: use correct version number (3.0.0) 2018-10-05 20:21:29 +09:00
Jorge Bucaran
54170ef1c3
breaking: implement fisher V3 (#445)
SUMMARY

This  PR  rewrites  fisher  from  the ground  up  and  adds  new
documentation. It introduces some  breaking changes as described
in the  next section. For  a historical background of  this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.

After much debate  and careful consideration I decided  it is in
the best interest of the  project to keep the CLI-based approach
to  dependency  management as  a  facade  to the  fishfile-based
approach originally proposed.

The new `add` commands (previously  `install`) and good ol' `rm`
interactively update  your fishfile and commit  all your changes
in one  sweep. To the  end user, it's as  if you were  adding or
removing  packages like  you already  do now.  Internally, these
commands affect how the fishfile  is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.

INSTALLING

- `install` has been renamed to `add`

- Installing from a gist is  no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)

- To  install a package  from a tag or  branch use an  at symbol
`@`—the colon `:` is deprecated

LISTING

- `ls` and `rm` are still available with a few minor differences

- `ls` followed by a package name does not list specific package
information (may be added back in a future release)

- `ls`  output format  no longer displays  a legend  to indicate
whether a package is a theme or a local package; now it's a flat
dump of every installed package specifier

- For local packages the full path is shown instead

- I want  to add a `--tree`  option in to display  packages in a
tree-like format in the future

- `ls-remote` has been removed as there is no longer a preferred
organization to  look for packages— there  is no plan to  add it
back

UPDATING

-  A new  `self-update` command  has been  introduced to  update
fisher itself

- fisher  will be only  updated when  a new version  is actually
available

- `update` has been removed

-  Everything is  installed from  scratch everytime  you add  or
remove  something,  so  there  is no  need  to  update  specific
packages—you're always up-to-date

-  To  lock  on  a  specific  package  version  install  from  a
tag/branch, e.g., `mypkg/foobar@1.3.2`

UNINSTALLING

- `self-uninstall` works as usual

HELP & VERSION

- `help` only displays fisher usage help

- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual

ENVIRONMENT

- `$fish_path` been  renamed to `$fisher_path` to  make it clear
that this is a fisher specific extension, not your shell's

ECOSYSTEM

-  Oh  My  Fish!  packages  are  still  supported,  albeit  less
attention is paid to them

-  Some  packages that  use  Oh  My Fish!  specific  environment
variables or events might not work

- Most of  Oh My Fish! extensions are no  longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish

DEPENDENCIES

- fisher can now run on fish 2.0

- It's a  good idea to upgrade  to at least fish 2.3  to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version

- `curl` is required for fetching packages

- I am considering adding a  fallback to `wget` if `curl` is not
available on your system

- `git` is optional

-  V3   fetches  packages  directly  from   github,  gitlab  and
bitbucket, if you are using them

- git  is only used  (implementation still  wip) if you  want to
install a  package from an  unknown git  host like your  own git
server
2018-10-05 20:20:31 +09:00
Jorge Bucaran
fa4eec9b2a
refactor: remove ability to rename fisher command itself 2018-09-11 09:07:25 +09:00
Erik P. Hansen
b857cac45c Update help to be more in line with README (#440)
- Explain how to copy, not link, files when installing plugins
- This feature was added in v2.13.3
2018-08-21 17:58:02 +09:00
Bjorn Neergaard
8e3e26d7a6 Use standard sh-style redirection for stderr (#416)
`^` has been removed as a stderr redirection operator
(fish-shell/fish-shell#4394) in future versions of fish.

Closes: #416
2018-05-16 16:58:33 -07:00
Jorge Bucaran
52d318b673
2.13.3 2018-04-25 11:19:10 +09:00
Ryan Sullivan
766bd093a1 Allow for copy instead of linking (#401)
* Allow for optional copy on install instead of linking

* Remove eval in favor of proper test call

* Document fisher_copy variable

* Missing ?
2018-04-25 11:18:42 +09:00
Robert Holak
4803a700a1 Fix awk parser to set correct variable. (#419)
The awk json parsing routine was setting a variable of "description"
instead of "info". This was causing a problem where the cached index -
and subsequently ls-remote commands - to show the "%info" format item as
the URL again.
2018-04-18 00:14:12 -07:00
Roman Zhuzha
b7b8a1339a improve index file parsing (#412)
* use match() to extract substrings

* match only horizontal whitespaces
2018-03-22 22:43:28 +09:00
Joe Green
79fc2e6f6b fisher up obeys $fish_path (#407)
* Ensure fisherman's completions are placed in the correct fisherman directory when running self update.

* Update documentation to include the extra steps required when setting fish_path.

* -U instead of -g in README.
2017-12-13 19:29:58 +09:00
Jorge Bucaran
e4f3633f6d
2.13.2 2017-09-05 17:47:37 +09:00
Jorge Bucaran
b6ae25826a
Fix bad redirection during self-uninstall. Close #398. 2017-09-05 17:46:59 +09:00
Jorge Bucaran
6ad03af343
→ 2.13.1 🎉 Thanks @christianrondeau. 2017-07-30 16:42:43 +09:00
Christian Rondeau
9e6855aba4 Termux compatibility (#383) 2017-07-30 16:39:03 +09:00
Jorge Bucaran
a08ff15a19
2.13.0 2017-07-01 04:22:32 +09:00
Joe George
c3172511e0 Fix #391 (#392)
Fisherman was always writing its completion file to $fish_config/completions.

This was incorrect behavior if $fish_path was set to a directory other than
$fish_config (its default).

Note that when using $fish_path to manage functions, completions and snippets, 
you opt out fish default locations which are handled for you by the shell and
consequently are responsible for appending your custom $fish_path/functions
and $fish_path/completions directories to $fish_function_path and $fish_complete_path respectively, as well as sourcing snippets (.fish files under $fish_path/conf.d) on shell 
startup.
2017-07-01 04:19:48 +09:00
Yuji Yamamoto
210fb8c202 Escape "$file" in the warning message. (#390)
Fix https://github.com/fisherman/fisherman/issues/389
2017-06-22 13:40:40 +09:00
Eric Mrak
0073552780 Prevent additional remotes per plugin from affecting fishfile
closes #371
2017-03-03 09:56:52 -08:00
Francisco Lourenco
e15ccc8f75 Document how to install branches and tags
Closes: #364
2017-02-15 21:36:03 +01:00
Francisco Lourenco
585787d60e Add notice about fish <2.3.0 and snippet support 2017-02-15 21:06:23 +01:00
Francisco Lourenco
0732e2485b Fix warning message about fish <2.2.0
- `__fisher_log` doesn't work on <2.2.0 anymore so use `echo` instead
- `command -s` option not available on macOS, so use `type` instead
- `type -q` not available on fish <2.2.0,use `type brew >/dev/null 2>&1`
- `brew up` not needed anymore, it auto updates now
- `brew --HEAD` not needed, latest version is enough
2017-02-15 21:06:23 +01:00
Francisco Lourenço
ee617c160b Install/Update from branch separated by : or @ (#365)
Examples:

fisher install fisherman/done@dev
fisher install fisherman/done@1.1.0
OR
fisher install fisherman/done:dev
fisher install fisherman/done:1.1.0

Related: #269
2017-02-11 01:29:37 +09:00
Jorge Bucaran
9d5bfca6c2
Fix #359.
fish 2.5 more strict handling of the `test` builtin helped identify
the bug.
2017-02-04 01:56:19 +09:00
Jorge Bucaran
074b6b899c
Bump 2.11.0 2016-10-15 15:41:49 +09:00
Jorge Bucaran
b26c988aa6
Allow http:// URLs and optional http/s:// for gitlab, github and bitbucket. 2016-10-15 15:41:19 +09:00
Jorge Bucaran
550c75dc2f
Make sure fisher_cmd_name is set anyway. Related #339. 2016-10-15 14:40:45 +09:00
Jorge Bucaran
c42828c7d0
2.10.0 2016-06-02 18:50:06 +09:00
Jorge Bucaran
d5869a7ea0
Fix incorrect dep fetch. Close #306.
* Add support to fish-theme-* and fish-plugin-* repo names,
  otherwise fisherman would end up trying to install the
  unknown dependencies.

* Remove support for using `:' as a git tag delimiter when
  installing plugins as that was causing full URLs to be
  parsed incorrectly.
2016-06-02 18:48:03 +09:00
Jorge Bucaran
2ff8eac108
Use a printf verb in ls-remote to avoid printing weird stuff. 2016-06-01 23:45:41 +09:00
Jorge Bucaran
3769e24da2
2.9.0 2016-05-28 18:10:25 +09:00
Jorge Bucaran
cde155debd
Introduce fish_path. Fix #301. 2016-05-28 18:09:53 +09:00
Jorge Bucaran
10b5e26332
Remove license from source code. 2016-05-27 23:06:05 +09:00
Jorge Bucaran
e33663d791
Add LICENSE here, and remove from main repo. Only 3 files! :) 2016-05-27 20:33:59 +09:00
Jorge Bucaran
9ce504e6e0
2.8.0 2016-05-27 01:42:42 +09:00
Jorge Bucaran
3f79861722
Better uninstall support, help completions, etc.
* #293, #294
2016-05-27 01:41:26 +09:00
Jorge Bucaran
08158f2b84
Update manpage. 2016-05-27 00:45:44 +09:00
Jorge Bucaran
7d6a6eccd2
String subst for __fish_datadir in __fisher_version. 2016-05-22 04:57:24 +09:00
Jorge Bucaran
06a51ce2b5
Warn if trying to self-up/rm in a global setup. 2016-05-22 03:45:28 +09:00
Jorge Bucaran
ecdcec9285
2.7.8 2016-05-20 10:38:09 +09:00
Jorge Bucaran
637145678e
Install/Update from a branch. Close #269.
Use fisher [install] PLUGIN:BRANCH_NAME to install from any
given branch. The default branch is master. You can use `@'
instead of `:' to specify the branch name.

If you install a plugin from BRANCH and later remove it,
the repository in ~/.cache/fisherman/PLUGIN will remain
checked out on BRANCH. To force install from another
branch specify a different branch, e.g. `:master'.

    fisher PLUGIN:BRANCH
    fisher rm PLUGIN
    fisher PLUGIN        # install PLUGIN from BRANCH
    # or
    fisher PLUGIN:master # install PLUGIN from master

Updating a plugin always fetches the latest HEAD from
the currently checked out branch.
2016-05-20 10:27:28 +09:00
Jorge Bucaran
8ce8490e4d
Use &' as the style verb instead of @' in __fisher_log. 2016-05-20 08:40:22 +09:00
Jorge Bucaran
e6e30f3fff
Display OK status when fetching plugins from the cache. 2016-05-20 08:25:25 +09:00
Jorge Bucaran
36a9952f23
Remove plugins if given full original name or url. Fix #291 2016-05-20 08:24:16 +09:00
Jorge Bucaran
d6d4c5deaf
Update plugins if given full original name or url. Fix #290. 2016-05-20 08:19:27 +09:00
Jorge Bucaran
53e23ee886
Update usage help. 2016-05-20 08:17:53 +09:00
Jorge Bucaran
b1f79b55d1
2.7.7 2016-05-19 23:12:59 +09:00
Jorge Bucaran
09f0dfcabe
Discard mv errors during backup creation. 2016-05-19 23:12:47 +09:00
Jorge Bucaran
b90c36d7fb
Guard stdout/err redirections by quotes. 2016-05-19 23:10:43 +09:00
Jorge Bucaran
5e356e8ee4
Create stdout/err fd earlier. 2016-05-19 22:48:17 +09:00
Jorge Bucaran
f784dace49
Early exit __fisher_log if no log command is given. 2016-05-19 22:44:40 +09:00
Jorge Bucaran
c27de1f20d
Initialize next and last values in ls-remote pagination process. 2016-05-19 21:31:36 +09:00
Jorge Bucaran
b530f01692
Refactor fisher_cmd_name generation. 2016-05-19 21:26:48 +09:00
Jorge Bucaran
05d645f19c
2.7.6 2016-05-19 20:25:21 +09:00
Jorge Bucaran
a7c22d8883
Remove .git suffix from git URls. 2016-05-19 20:24:39 +09:00
Jorge Bucaran
e084aa7f7c
Load functions before conf.d. 2016-05-19 20:22:18 +09:00
Jorge Bucaran
fd282ffa6d
2.7.5 2016-05-19 18:54:47 +09:00
Jorge Bucaran
5fae5fdc80
2.7.4 2016-05-19 18:50:41 +09:00
Jorge Bucaran
e87e3256f3
Fix incorrect use of non-autoloaded __fisher_list during self-destroy. 2016-05-19 18:50:02 +09:00
Jorge Bucaran
af25db795d
2.7.3 2016-05-19 18:47:52 +09:00
Jorge Bucaran
7259a3ee6a
Introduce $fisher_cmd_name variable to customize fisher command name. 2016-05-19 18:47:40 +09:00
Jorge Bucaran
511f917ef8
Introduce notion of players, e.g, fisherman, oh-my-fish, etc.
fisher ls-remote now queries the github API for each player
to retrieve repo information. Includes pagination support.
2016-05-19 05:56:21 +09:00
Jorge Bucaran
9ea7e5735a
2.7.1 2016-05-17 14:59:53 +09:00
Jorge Bucaran
257ef061db
Use available command date if perl is not avail. in Darwin/FreeBSD. 2016-05-17 14:59:37 +09:00
Jorge Bucaran
3197d68fbb
2.7.0 📦 2016-05-17 13:36:47 +09:00
Jorge Bucaran
7f1e130236
Do not obliterate existing user bindings when installing bindings plugins. Close #283. 2016-05-17 13:36:47 +09:00
Jorge Bucaran
47924cf232
Add FreeBSD to the Darwin `date' can't display nano seconds club. Close #284. 2016-05-17 13:36:47 +09:00
Jorge Bucaran
afdd644b9c
Do not dupe bindings when updating bindings plugins. Close #285 2016-05-17 13:36:47 +09:00
Alexey Alekhin
840f6a613e Fixed a typo: fi{n,sher}_index_update_interval (#281) 2016-05-15 21:49:01 +09:00
Jorge Bucaran
dd1ea57ad1
2.6.20 2016-05-15 15:53:30 +09:00
Jorge Bucaran
bfc305528e
Bugfix: Incorrect JSON parsing when inside mawk. 2016-05-15 15:53:30 +09:00
Jorge Bucaran
3859041dab
2.6.19 2016-05-14 14:27:57 +09:00
Jorge Bucaran
59000414e8
Docs. 2016-05-14 14:17:27 +09:00
Jorge Bucaran
1f2941ac1d
Create basic completions always. 2016-05-14 11:58:49 +09:00
Jorge Bucaran
487349d244
2.6.17 2016-05-14 11:50:39 +09:00
Jorge Bucaran
2f1a3abc4b
Use `!' instead of ERR for error reports. 2016-05-14 11:50:11 +09:00
Jorge Bucaran
ec5a66f028
2.6.16 2016-05-13 15:13:34 +09:00
Jorge Bucaran
9ad788a6c0
Load completions after functions in __fisher_plugin_enable. #fin/issues/28 2016-05-13 15:13:24 +09:00
Jorge Bucaran
8f9898dc25
More compact message report. 2016-05-12 21:08:34 +09:00
Jorge Bucaran
4b27eaa82f
Use fish_color_* colors instead of harcoding red, green, etc. 2016-05-12 20:53:31 +09:00
Jorge Bucaran
b9001532a7
2.6.14 2016-05-10 21:33:02 +09:00
Jorge Bucaran
ecf0aebe13
Load conf.d first and source bindings after install. #272 2016-05-10 21:32:45 +09:00
Jorge Bucaran
299c1b985b
2.6.13 2016-05-10 20:57:06 +09:00
Jorge Bucaran
fdccc77b71
Bugfix: Use fisher_file instead of fisher_bundle. 2016-05-10 20:56:56 +09:00
Jorge Bucaran
3ae1b1897e
2.6.12 2016-05-10 19:26:35 +09:00
Jorge Bucaran
0e46afd6fc
Add fish version check, exit if too low. Thanks @msikma. 2016-05-10 19:25:05 +09:00
Jorge Bucaran
a53f417edf
Do not obliterate, rather create backups of existing functions/*.fish files during install. Close #268. 2016-05-10 19:01:49 +09:00
Jorge Bucaran
2ef4bbd22f
Improve argv handling. Close #266, #265. 2016-05-09 20:09:09 +09:00
Jorge Bucaran
fff7e78c01
2.6.10 2016-05-08 06:24:54 +09:00
Jorge Bucaran
0a371507fe
Do not add local plugins to fishfile. 2016-05-08 06:24:40 +09:00
Jorge Bucaran
04b4f8c134
Add remove alias to uninstall, but do not generate completions for it. 2016-05-08 06:08:45 +09:00
Jorge Bucaran
5ec372d6fb
2.6.9 2016-05-08 05:48:44 +09:00
Jorge Bucaran
47f90db643
Do not show usage help inconsistently. 2016-05-08 05:48:32 +09:00
Jorge Bucaran
bb848e7920
Handle key bindings corretly. Fix #263. 2016-05-08 05:45:52 +09:00
Jorge Bucaran
52c5a7148c
Progress report improvements.
* Display fetch message for plugins retrieve from the cache.
* Display what plugins are being removed.
2016-05-08 04:20:27 +09:00
Jorge Bucaran
a11213bd38
Increase index update interval a bit. 2016-05-07 22:29:17 +09:00
Jorge Bucaran
00dd017af8
2.6.7* 2016-05-07 22:22:28 +09:00
Jorge Bucaran
516a03afd5
2.6.7 2016-05-07 22:20:21 +09:00