gvm icon indicating copy to clipboard operation
gvm copied to clipboard

Fish shell support

Open pyprism opened this issue 9 years ago • 13 comments

Its would be great if u could add support for Fish shell

pyprism avatar Apr 29 '15 13:04 pyprism

+1 :)

emilevauge avatar May 11 '15 11:05 emilevauge

need too

buaazp avatar Jun 01 '15 05:06 buaazp

Fish is a good shell, I think it should add support for it.

hacpai avatar Jul 02 '15 09:07 hacpai

Anyone worked this out?

ebramanti avatar Aug 08 '15 19:08 ebramanti

I've been using Bass as a way to get gvm working in fish. I'm still working to get gvm use to work, but I'll update this post when I do. It's pretty glitchy overall, but its working for now.

To setup, run the normal install command in bash:

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

Then, add gvm.fish to your functions folder:

function gvm
  bass source ~/.gvm/scripts/gvm ';' gvm $argv
end

You should be up and running!

ebramanti avatar Aug 15 '15 16:08 ebramanti

+1

alanhoff avatar Aug 24 '15 19:08 alanhoff

+1

davidbarton avatar Sep 11 '15 11:09 davidbarton

@jadengore Yep, that's a workaround for people using fish :)

egoist avatar Jan 21 '16 13:01 egoist

@egoist gvm use still does not work for me, but it's something!

ebramanti avatar Jan 21 '16 18:01 ebramanti

+1 - the regular shell makes me sad

nrkfeller avatar Jun 07 '16 15:06 nrkfeller

+1 - the workaround has no persistent gvm use between shell sessions.

simonszu avatar Mar 13 '17 18:03 simonszu

+1 - gvm install doesn't work for me using this method, I have to drop into bash

maddiemort avatar Feb 13 '18 10:02 maddiemort

I add an file named gvm.fish in ~/.config/fish/functions/ folder with:

function gvm
    set after_env (mktemp -t env)
    set path_env (mktemp -t env)

    bash -c "source ~/.gvm/scripts/gvm && gvm $argv && printenv > $after_env"

    # remove any pre-existing .gvm paths
    for elem in $PATH
    	switch $elem
    		case '*/.gvm/*'
    			# ignore
    		case '*'
    			echo "$elem" >> $path_env
    	end
    end

    for env in (cat $after_env)
    	set env_name (echo $env | sed s/=.\*//)
    	set env_value (echo $env | sed s/.\*=//)
    	switch $env_name
    		case 'PATH'
    			for elem in (echo $env_value | tr ':' '\n')
    				switch $elem
    					case '*/.gvm/*'
    						echo "$elem" >> $path_env
    				end
    			end
    		case '*'
    			switch $env_value
    				case '*/.gvm/*'
		    			eval set -g $env_name $env_value > /dev/null
    			end
    	end
    end
    set -gx PATH (cat $path_env) ^ /dev/null

    rm -f $after_env
    rm -f $path_env
end

And in my file ~/.config/fish/config.fish I add the following line:

bass source ~/.gvm/environments/default

Its works for me!

rodrigomageste avatar Oct 18 '19 20:10 rodrigomageste