dotfiles

my shiny new dotfiles
git clone git://git.jakekoroman.com/dotfiles
Log | Files | Refs | README

fenv.main.fish (1635B)


      1 # The MIT License (MIT)
      2 
      3 # Copyright (c) 2015 Derek Willian Stavis
      4 
      5 # Permission is hereby granted, free of charge, to any person obtaining a copy
      6 # of this software and associated documentation files (the "Software"), to deal
      7 # in the Software without restriction, including without limitation the rights
      8 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      9 # copies of the Software, and to permit persons to whom the Software is
     10 # furnished to do so, subject to the following conditions:
     11 
     12 # The above copyright notice and this permission notice shall be included in all
     13 # copies or substantial portions of the Software.
     14 
     15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     16 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     17 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     18 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     19 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     20 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     21 # SOFTWARE.
     22 
     23 
     24 function fenv.main
     25   bash -c "$argv && env -0 >&31" 31>| while read -l -z env_var
     26     set -l kv (string split -m 1 = $env_var); or continue
     27     # Skip read-only variables
     28     contains $kv[1] _ SHLVL PWD; and continue
     29     string match -rq '^BASH_.*%%$' $kv[1]; and continue
     30     # Variable
     31     # - is not defined
     32     # - OR variable differs
     33     # - OR variable is not exported
     34     if not set -q $kv[1]; or test "$$kv[1]" != $kv[2]; or not set -qx $kv[1]
     35       set -gx $kv
     36     end
     37   end
     38   return $pipestatus[1]
     39 end