Commit graph

365 commits

Author SHA1 Message Date
Jorge Bucaran 5e454f63bf
Silently accept ls, rm as undocumented aliases for list, remove 2020-11-06 01:04:47 +09:00
Jorge Bucaran 47ba393569
Remove fish_plugins if the file becomes empty 2020-11-06 01:01:44 +09:00
Jorge Bucaran e8c48262e1
More deprecation tweaks 2020-11-05 18:27:46 +09:00
Jorge Bucaran 3f0138c097
Refactor add/ls/rm deprecation notice 2020-11-05 17:23:18 +09:00
Jorge Bucaran 479bb3cd36
Tweak error messages 2020-11-05 15:09:55 +09:00
Jorge Bucaran 07b7fc79d7
Remove, then install during fisher update, fix #600
Prompts' `fish_*.fish` files get removed during a
full update when you try to replace your existing
prompt with a new one.

For example, during a `fisher update`, if we install
`foo/new_prompt` first, and remove `foo/old_prompt`
afterm we could end up without a fish_prompt file.
2020-11-05 14:34:24 +09:00
Jorge Bucaran fa598b1ed6
fish_prompt fallback check needs to be done only once 2020-11-05 14:24:34 +09:00
Jorge Bucaran 83608c228a
Simplify pre install/update/remove diff logic 2020-11-05 14:21:53 +09:00
Jorge Bucaran f97dc3b47d
Update plugins on install if they are already installed, close #599 2020-11-05 04:23:34 +09:00
Jorge Bucaran 3077649891
Temp support add/ls/rm with warning to smooth transition to 4.0 (#594) 2020-11-05 03:59:56 +09:00
Jorge Bucaran e3ae2ed66a
Create functions, completions, and conf.d in $fisher_path; fix #598
A cleaner approach would be to move fisher.fish to functions
but this would break older versions of fisher that hardcoded
the raw URL to the fisher.fish file for upgrades.
2020-11-05 03:21:43 +09:00
Jorge Bucaran bd7b69d47b
Copy default schema before top-level files 2020-11-05 03:20:27 +09:00
Jorge Bucaran 08bdf7ed0d
Don't print log for fisher install fisher during bootstrap 2020-11-04 20:17:56 +09:00
Jorge Bucaran 168004cf1e
Use more backward compatible -a flag 2020-11-04 20:07:45 +09:00
Jorge Bucaran dbf07b1709
Fisher 4.0 (#596)
- Introduce new event system. #526, #527 #573.
- Deprecate `init.fish`, `uninstall.fish`, etc. #581
- No cache fallback, no plugin dependencies, no more private
package hosts, and no more gitlab/bitbucket support. #464, #579
- Require fish 3.0, use newer fish features, e.g., use `wait` to
implement concurrent downloads.
- Rely less on external tools. No awk, no sed, no basename/dirname.
Just mv, rm, cp, and mkdir.
- Deprecate `fishfile` in favor of `fish_plugins`. This new file
works like the old fishfile, but without comment support. See #524.
2020-11-04 19:50:10 +09:00
Jorge Bucaran c84294b06f
3.3.2 2020-08-13 20:38:46 +09:00
Jorge Bucaran 429b99696f
Consistent terminology - use plugin everywhere; #587 2020-08-13 20:38:02 +09:00
Jorge Bucaran b9c5b48513
3.3.1 2020-08-05 00:00:46 +09:00
Jorge Bucaran fcef567fba
Download packages from HEAD; close #585 2020-08-05 00:00:33 +09:00
Jorge Bucaran 6cdfadc41e
3.3.0 2020-08-02 19:42:15 +09:00
Jorge Bucaran d7035f3f4e
Add default (main) tag fallback support; fix #583
When adding packages without specifying the tag/branch, e.g.

  fisher add jorgebucaran/nvm.fish

we'll try to download it from the `/main` tag by default and
if that fails, fallback to `/master`.
2020-08-02 19:33:34 +09:00
Jorge Bucaran c20d1b3ec3
Fix broken self-update; close #584 2020-08-02 11:01:19 +09:00
Jorge Bucaran 9a0679c9ae
3.2.12 2020-07-27 20:17:17 +09:00
Guilherme Silva 510e6254ee
self-update: better network error handling; fix #580
A power outage could corrupt a `fisher self-update`. 
This change prevents fisher from overwriting itself to death.
2020-07-27 20:16:49 +09:00
James Smith 3decc8e468
Migrate Data to Proper XDG Directory (#571)
Going by the XDG base directory specification, it makes more sense to
place fisher data in XDG_DATA_HOME rather than XDG_CONFIG_HOME.
2020-07-01 12:30:16 +09:00
Jorge Bucaran 017046abf3
3.2.11
https://github.com/jorgebucaran/fisher/releases/tag/3.2.11
2020-05-23 01:39:50 +09:00
Andrei Borisov 44405ca9c4
Fix _fisher_parse function for BusyBox awk (#566) 2020-05-23 01:37:54 +09:00
Jorge Bucaran c142f61e51
3.2.10 2019-11-16 01:38:00 +09:00
mattmc3 25ae8be214 Better fishfile location support (#547)
* Better fishfile location support

Per issue #545, support fishfile living in $fish_config even when $fisher_path is set if desired.

* Re-home fishfile to $fish_config/fishfile

Per discussion here:
https://github.com/jorgebucaran/fisher/pull/547
https://github.com/jorgebucaran/fisher/issues/545

Fish file is returned from $fisher_path/fishfile to $fish_config/fishfile.

* Change $fishfile to global variable
2019-11-09 12:06:43 +09:00
Jorge Bucaran ae37295f81
3.2.9 2019-04-17 02:32:18 +09:00
Jorge Bucaran 8b5a422999
Trim https:// before github.com/ in _fisher_fmt 2019-04-17 02:32:04 +09:00
Jorge Bucaran 0b1f270361
3.2.8 2019-03-06 12:20:23 +09:00
AppleTheGolden c66a1db768
Ignore curl write out vars from your .curlrc (#530) 2019-03-06 12:17:11 +09:00
Jorge Bucaran b2cd7aee3a
3.2.7 2019-01-30 03:36:34 +09:00
Jorge Bucaran c7472b2961
fix: don't hang if there are jobs in the bg; close #523 2019-01-30 03:33:03 +09:00
Jorge Bucaran ae878a8e9c
refactor: indent stream redirections properly 2019-01-23 00:53:51 +09:00
Jorge Bucaran 9a23976473
3.2.6 2019-01-22 20:36:46 +09:00
Jorge Bucaran 49c3eabf9f
refactor: rename some internal variables 2019-01-22 20:26:48 +09:00
Jorge Bucaran 37a6cd28e3
refactor: rename help,version to --{help,version} 2019-01-22 18:54:16 +09:00
Jorge Bucaran e11cd69f17
refactor: embed version echo to argv switch 2019-01-22 18:29:59 +09:00
Jorge Bucaran 5ddafed654
refactor: don't read entire fisher.fish to get version 2019-01-22 18:24:07 +09:00
Jorge Bucaran 91417201f4
fix: refactor parallel fetch; close #518
- Resolve circular dependencies for local packages
  - Integrate _fisher_deps functionality to _fisher_fetch
- Update _fisher_jobs to exit with status 1 if there are no jobs
- Use `set -q myvar[1]` instead of `test -z $myvar` where possible
2019-01-22 17:58:42 +09:00
Jorge Bucaran db82938731
fix: sed regexes; bug introduced with fe1cc9805 2019-01-22 10:13:32 +09:00
Jorge Bucaran 12ee3cb33e
refactor: remove _fisher_wait function; use inline solution
To be eventually replaced by the `wait` builtin.
2019-01-21 20:51:25 +09:00
Jorge Bucaran 972eed7aa8
refactor: simplify _fisher_add and _fisher_rm code 2019-01-21 20:50:23 +09:00
Jorge Bucaran 632917c7d2
fix: show packages installed from a branch/tag in fisher ls 2019-01-21 20:04:56 +09:00
Jorge Bucaran 8a99865be5
refactor: consume empty lines in fishfile 2019-01-21 20:02:25 +09:00
Jorge Bucaran 3a13ba9d68
feat: allow inline comments in fishfile 2019-01-21 19:29:25 +09:00
Jorge Bucaran 975aa989c9
refactor: rename _fisher_diff to _fisher_parse 2019-01-21 16:56:29 +09:00
Jorge Bucaran fe1cc9805c
refactor: make $HOME to `~' sed regex stricter 2019-01-21 16:36:55 +09:00
Jorge Bucaran 8cb6692785
fix: add local packages to fishfile 2019-01-21 16:03:06 +09:00
Jorge Bucaran 61f679e6a3
fix: if inside a local package, allow installing with: . or ./; close #513 2019-01-21 15:36:30 +09:00
Jorge Bucaran 6401d18504
3.2.5
- ci: use && (tears of joy)
- docs: better explore package directions
- refactor: add license info to README; remove LICENSE file
- refactor `fisher ls REGEX`
- refactor: merge fishfile read/write parser to one script
- refactor: take advantage of nullglob in for loops
- refactor: prepend "fisher:" to error messages to improve logging
- refactor: remove unnecessary message after self-uninstall
- refactor: rename `fisher self-complete` to `fisher complete`
- refactor: simplify status report format script
2019-01-21 02:51:34 +09:00
Stefan Maric 1211e0bafa fix: override fishfile content instead of replacing the file
This allows fishfile to be a symlink, which I used to keep track of my
dotfiles in a repo, and broke after upgrading to V3.
2019-01-18 15:30:45 +01:00
Jorge Bucaran f1766dcfa0
refactor: automate erasing variables in uninstall 2019-01-12 19:10:14 +09:00
Jorge Bucaran d1e49f8d9a
3.2.4 2019-01-12 18:49:22 +09:00
Jorge Bucaran 78c0852162
feat: filter ls output using a regular expression; close #512 2019-01-12 18:49:03 +09:00
Jorge Bucaran 12661c592f
fix: ls should show only user installed packages; close #511 2019-01-12 18:19:28 +09:00
Jorge Bucaran 03bfe5ed2a
3.2.3 2019-01-12 13:46:19 +09:00
Jorge Bucaran 14c740d1d6
docs: move legacy fish support guide to issues; #510 2019-01-12 13:46:01 +09:00
Jorge Bucaran fbfc7c04f3
refactor: improve fisher rm completions
For tab completions we want to list only the packages that you
added yourself (via the CLI or fishfile) and ignore those that
are installed but are dependencies of another package/s.
2019-01-12 12:46:37 +09:00
Jorge Bucaran 5cb9b3d7ea
refactor: keep break on the same line 2019-01-12 11:24:54 +09:00
Jorge Bucaran 076e12db1a
refactor: for consistency, don't use builtin jobs, just jobs 2019-01-12 11:23:44 +09:00
Jorge Bucaran 37335526dc
refactor: date +%s%3N should work on Linux (or print only seconds) 2019-01-12 11:22:45 +09:00
Jorge Bucaran e1469e5a39
fix: use same path for other *BSDs in _fisher_now 2019-01-12 11:01:00 +09:00
Jorge Bucaran fff873955a
fix: print result even if t1-t0 equals 0; close #508 2019-01-12 10:59:54 +09:00
Jorge Bucaran 37c9d70674
refactor: improve awk script readability in _fisher_fetch 2019-01-11 21:22:32 +09:00
Jorge Bucaran 23462edfd0
refactor: improve fishfile read field sep regex 2019-01-11 16:44:24 +09:00
Jorge Bucaran 9293e8b3b7
refactor: improve jobs regex 2019-01-11 11:10:53 +09:00
Jorge Bucaran 6990b81599
refactor: use -e flag for consistency 2019-01-05 01:46:17 +09:00
Jorge Bucaran 7140368155
refactor: remove extraneous argument 2019-01-05 01:45:43 +09:00
Jorge Bucaran 79b2f21662
3.2.2 2019-01-03 09:48:05 +09:00
Jorge Bucaran 64a812e90e
bug: fix name format regex; close #506 2019-01-03 09:47:41 +09:00
Jorge Bucaran 78f35610ca
3.2.1 2019-01-01 14:52:10 +09:00
Jorge Bucaran 49785a134b
fix: don't create cache directory before fetching 2019-01-01 14:52:00 +09:00
Jorge Bucaran 39e9f3f340
3.2.0
- Optimize startup path #494
  - Cuts fisher-related startup time to roughly 25ms
  - Reduce legacy fish support (~~>=2.0~~ >=2.1)
- Read fishfile from `$fisher_path` instead of `$fish_config` #480, #479
- Don't add invalid packages to fishfile / validate fishfile #478 #484 #492
- Rewrite tar expansion logic / don't use `--strip-components` #489 #496
  - Better OpenBSD support
  - Better msys2 on Windows 10 support
- Create symbolic links of original files when adding local packages #502
2019-01-01 02:49:03 +09:00
Sefa Eyeoglu d65b86487b
Read fishfile from $fisher_path instead of $fish_config (#480) 2019-01-01 02:45:19 +09:00
Bjorn Neergaard 6e5a751e16
Optimize fisher startup path (#494)
* With the addition of keybinding support for fish 2.x, fisher greatly
increases shell startup time (50-100ms in my testing). This is due to a
number of reasons, including using less-than-ideal builtins,
unconditionally running mkdir, unconditionally recreating
conf.d/fisher.fish, and checking for curl on startup (instead of when
curl is used).

* This patch cuts fisher-related startup time to roughly 25ms, simplifying
the code paths as much as I am able.

* The source function is removed as a compromise for speed. Fish 2.1 and
greater support `source`, and supporting fish 2.0 is not worth a hefty
speed penalty in my opinion.

* Remove curl checks, invert version logic.

* Update README to reflect fish 2.1+ requirement
2019-01-01 02:45:19 +09:00
Jorge Bucaran 2d6b6a1926
feature: don't add invalid packages to fishfile; fix #484 2019-01-01 02:44:20 +09:00
Jorge Bucaran e9925f4a96
3.1.1 2018-10-21 23:34:28 +09:00
Jorge Bucaran d653e0e0e9
refactor: improve readability / indentation 2018-10-21 23:32:13 +09:00
Jorge Bucaran 71974a2527
feat: show error if package being removed is not found; close #478 2018-10-21 23:31:16 +09:00
Jorge Bucaran 2be2ea6109
refactor: rename seen→seen_pkgs 2018-10-21 23:28:25 +09:00
Jorge Bucaran aff893c05b
refactor: change regex to remove everything before a ***github.com/foo/bar 2018-10-21 22:33:59 +09:00
Jorge Bucaran ddf7334854
3.1.0 2018-10-17 15:57:46 +09:00
Jorge Bucaran c9974efc12
feat: add user key bindings autoloading for legacy fish
Packages add key bindings via configuration snippets. As it turns out,
configuration snippets are not available  in legacy fish and only fish
3.0 or newer can use the bind builtin on shell startup.

To support  packages that add key  bindings in legacy fish,  we make a
copy  of  the  user's  fish_user_key_bindings function  (if  there  it
exists)  and create  a new  one that  when called,  will source  every
*_key_bindings.fish  inside \$fisher_path/conf.d  and finally  run our
copy of the  user's fish_user_key_bindings, if it  exists, to preserve
any user defined key bindings.

To be able to  run code on shell startup we  create a fisher.fish file
inside \$fisher_path/conf.d if running an  older version of fish. When
the user  upgrades to  a supported  fish version,  we'll automatically
remove this file.
2018-10-17 15:51:12 +09:00
Jorge Bucaran 207ccf00b6
refactor: add more info to help command
Command line usage help now tells you that running fisher will
update installed packages. Running fisher also commits fishfile
changes, but I couldn't fit all the words on the same line.
2018-10-16 14:36:57 +09:00
Jorge Bucaran 76bb67b9c6
fix: use command 2018-10-14 02:55:42 +09:00
Jorge Bucaran 24e9154688
refactor: function, var names & spacing
- _fisher_fishfile_load→_fisher_fishfile_read
2018-10-14 02:21:39 +09:00
Jorge Bucaran 77fc030c03
feat: copy files from sub directories; close #468
Supporting nested directories is an anti-feature. It exists only
so that we can install certain packages that are structured that
way. All functions will share the same scope and location.
2018-10-14 00:57:22 +09:00
Jorge Bucaran 8d3e4d367e
fix: normalize package id in fishfile format script 2018-10-13 14:42:48 +09:00
Jorge Bucaran 45e556ab18
3.0.9 2018-10-13 02:41:14 +09:00
Jorge Bucaran 4d953fa72e
feat: custom hosted packages via ssh+git; fix #464
Use git to install packages hosted in a custom server
via ssh using a URL like: owner@host.xz:path/to/repo
2018-10-13 02:24:53 +09:00
Jorge Bucaran da792f6887
style: improve package fetch error message 2018-10-13 01:12:43 +09:00
Jorge Bucaran 44ec48b472
refactor: use id to refer to package name specifier, not name 2018-10-13 01:09:16 +09:00
Jorge Bucaran 993b471777
refactor: improve readability of status report generator 2018-10-13 00:37:24 +09:00
Jorge Bucaran 32dbf148bb
refactor: improve fishfile formatter normalize regex 2018-10-13 00:28:50 +09:00
Jorge Bucaran 55b543eb13
fix: display correct time on Linux; close #463 2018-10-12 23:08:05 +09:00
Joe George 28aaa277e0 fix: don't strip github.com from local paths; fix #472 2018-10-11 00:41:44 +09:00
Michiel Scholten 1d82bee9c2 fix: replace ln with cp; don't hardlink; close #470 2018-10-10 23:53:40 +09:00