I'm trying to make bootstraped work environment which using fisherman,
in my Dockerfile it runs below command after putting fishfile.
RUN fish -c "fisher"
but it not works well
is there a way to install plugins on the environment ?
Hi
I created a Dockerfile sample so you can build your own docker box with fisherman
https://gist.github.com/Markcial/c16f9bf1bb6cb0164051645831aa56c3
There is a couple of things that you will (likely) want to change.
One of them is the locale support, i created the gist with full utf8 english locale support, but i suppose that you might want to add another locales of your own, simply add more lines on the sed replacement and you will be ready to use them, to set the default locale, replace the value on the ENV variables here and here, and the default value that will be written on the default locale file.
To add more fisherman plugins simply repeat step done here
In case of doubt, ping me back, regards!
Thanks, @JorgeBucaran @Markcial
but in my case, something strange with using fishfile.
Step 42/44 : RUN cat ~/.config/fish/fishfile
---> Running in 7743c0688e0e
fisherman/await
edc/bass
barnybug/docker-fish-completion
fisherman/fzf
fisherman/get
fisherman/getopts
fisherman/git_util
fisherman/host_info
fisherman/humanize_duration
fisherman/last_job_id
otms61/fish-pet
fisherman/pwd_info
fisherman/pwd_is_home
keyolk/simple
---> d0f0d114dce3
Removing intermediate container 7743c0688e0e
Step 43/44 : RUN fish -c "fisher"
---> Running in e4fc3eb41f7f
No plugins to install or dependencies missing.
by workaround I did
RUN fish -c "cat ~/.config/fish/fishfile | fisher"
Ah ok, i get what you mean.
The thing is, that docker is on its build stage does not reserve a proper tty.
@JorgeBucaran what is the reason of this tty check on this line?
Also before this step, there is a $argv check here which won't success because fisher was called with no arguments.
I'm out of the blue about this, i might be able to help if i get what are the cases to cover here.
@keyolk try this please
RUN sed -i "221d;237,239d" ~/.config/fish/functions/fisher.fish
# just before the fisher default command call
RUN fish -c "fisher"
@Markcial I think that's how we know if the user is (_not_) feeding fisherman a fishfile like (fisher < anotherfishfile).
if isatty
# just another regular day
else
# we were fed a fishfile, so set ourselves to install mode
end
Ok, then seems to be that there is no way to address the problem.
Anyways, seems that @keyolk already found a workaround to the issue. so @JorgeBucaran if you need to improve docs or more insights i am willing to help.
@Markcial I've been wanting to rewrite fisherman for a while, fixing everything I can, learning from https://github.com/fisherman/fin, but it hasn't happened.
Thanks! You can go ahead and change anything you want and create a PR! :)
Got the same problem using Ansible to setup my fish plugins.
I ran fish -c fisher after updating the fishfile as I wanted but instead of installing the plugins, it changed the fishfile to the state it would be with the currently installed plugins.
I just released fisher/releases/tag/3.0.0~! 馃帀
V3 implements a simpler, less error-prone package resolution algorithm and the fishfile is now correctly updated.
For more information see the new documentation.