t / t7005-editor.shon commit Merge branch 'maint' (4b7f59a)
   1#!/bin/sh
   2
   3test_description='GIT_EDITOR, core.editor, and stuff'
   4
   5. ./test-lib.sh
   6
   7for i in GIT_EDITOR core_editor EDITOR VISUAL vi
   8do
   9        cat >e-$i.sh <<-EOF
  10        echo "Edited by $i" >"\$1"
  11        EOF
  12        chmod +x e-$i.sh
  13done
  14unset vi
  15mv e-vi.sh vi
  16PATH=".:$PATH"
  17unset EDITOR VISUAL GIT_EDITOR
  18
  19test_expect_success setup '
  20
  21        msg="Hand edited" &&
  22        echo "$msg" >expect &&
  23        git add vi &&
  24        test_tick &&
  25        git commit -m "$msg" &&
  26        git show -s --pretty=oneline |
  27        sed -e "s/^[0-9a-f]* //" >actual &&
  28        diff actual expect
  29
  30'
  31
  32TERM=dumb
  33export TERM
  34test_expect_success 'dumb should error out when falling back on vi' '
  35
  36        if git commit --amend
  37        then
  38                echo "Oops?"
  39                exit 1
  40        else
  41                : happy
  42        fi
  43'
  44
  45TERM=vt100
  46export TERM
  47for i in vi EDITOR VISUAL core_editor GIT_EDITOR
  48do
  49        echo "Edited by $i" >expect
  50        unset EDITOR VISUAL GIT_EDITOR
  51        git config --unset-all core.editor
  52        case "$i" in
  53        core_editor)
  54                git config core.editor ./e-core_editor.sh
  55                ;;
  56        [A-Z]*)
  57                eval "$i=./e-$i.sh"
  58                export $i
  59                ;;
  60        esac
  61        test_expect_success "Using $i" '
  62                git commit --amend &&
  63                git show -s --pretty=oneline |
  64                sed -e "s/^[0-9a-f]* //" >actual &&
  65                diff actual expect
  66        '
  67done
  68
  69unset EDITOR VISUAL GIT_EDITOR
  70git config --unset-all core.editor
  71for i in vi EDITOR VISUAL core_editor GIT_EDITOR
  72do
  73        echo "Edited by $i" >expect
  74        case "$i" in
  75        core_editor)
  76                git config core.editor ./e-core_editor.sh
  77                ;;
  78        [A-Z]*)
  79                eval "$i=./e-$i.sh"
  80                export $i
  81                ;;
  82        esac
  83        test_expect_success "Using $i (override)" '
  84                git commit --amend &&
  85                git show -s --pretty=oneline |
  86                sed -e "s/^[0-9a-f]* //" >actual &&
  87                diff actual expect
  88        '
  89done
  90
  91test_done