summaryrefslogtreecommitdiff
path: root/.zsh/functions/IE
blob: c65c93b38eeb4af2363a7fdb7b60a13061a5eac3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
readonly default="HOL"
local file logic program defargs

if [[ $0 == "IJ" ]]; then
    program="jedit"
    defargs=""
else
    program="emacs"
    defargs="-x true -m iff"
fi

# safety check to avoid failing later on
if [[ ! -x =isabelle ]]; then
    echo "Isabelle not found. Aborting"
    return 1
fi

# try to map the arguments to the correct option
# usage is: [logic] [file] [isabelle opts]
case x$1 in
    x*.thy) file=$1; shift;;
    x-*);; # argument to isabelle emacs -> ignore
    x) ;; # empty -> ignore
    x*) # a logic pattern :)
        logic=$1; shift
        if [[ -n $1 && $1 != -* ]]; then
            file=$1; shift
        fi
esac

# have a .isabelle-logic file that contains a logic-image pattern
# if it contains "..", the parent directory is searched
if [[ -z $logic && -e .isabelle-logic ]]; then
    local p=.isabelle-logic
    local line=$(head -1 $p)

    while [[ $line == .. ]]; do
        p=../$p
        if [[ -e $p ]]; then
            line=$(head -1 $p)
        else
            line=
        fi
    done

    if [[ -n $line ]]; then
        logic=$line
        echo "Setting logic to '$logic' as found in local settings."
    fi
fi

# try to find the correct logic
# special case HOL, just to be sure :)
if [[ -n $logic && $logic != "HOL" ]]; then
    local found

    for l in $(isabelle findlogics); do
        if [[ $l == *${logic}* ]]; then
            logic=$l; found=1
            echo "Using logic '$logic'"
            break
        fi
    done

    if [[ -z $found ]]; then
        echo "No logic found that matches the pattern *${logic}*"
        echo "Existing logics are: $(isabelle findlogics)"
        unset logic
    fi
fi

# fall-through if no logic could be determined
if [[ -z $logic ]]; then
    logic=$default
    echo "Defaulting to '$logic'."
fi

# AAAAND ... FIRE!
isabelle ${program} ${=defargs} "$@" -l $logic $file

# vim: ft=zsh
Necoro' Neumann1-1/+2 2011-02-15Show dates for next/prev constRené 'Necoro' Neumann1-3/+5 2011-02-15fixRené 'Necoro' Neumann1-1/+4 2011-02-15fixRené 'Necoro' Neumann1-1/+1 2011-02-15mysql fixRené 'Necoro' Neumann1-1/+6 2011-02-15More nice things for constant expensesRené 'Necoro' Neumann8-16/+107 2011-02-15Ignore more filesRené 'Necoro' Neumann1-0/+3 2011-02-15Add content-typeRené 'Necoro' Neumann1-0/+1 2011-02-07Update copyrightRené 'Necoro' Neumann1-1/+1 2011-02-07Instead of overloading the normal 'render' function, add a 'render_utf8' methodRené 'Necoro' Neumann3-6/+3 2011-02-07missed oneRené 'Necoro' Neumann1-1/+1 2011-02-07unicode aware formRené 'Necoro' Neumann1-1/+10 2011-02-07Use Unicode as expectedRené 'Necoro' Neumann1-2/+2 2010-08-26but not editRené 'Necoro' Neumann1-1/+8 2010-08-26Make add redirect to addRené 'Necoro' Neumann1-1/+1 2010-07-27Add datepicker to add/editRené 'Necoro' Neumann3-3/+23 2010-07-27Fix sizes of datepickerRené 'Necoro' Neumann1-3/+3 2010-07-27Add jQuery UI -- DatepickerRené 'Necoro' Neumann17-0/+1168 2010-07-27Add category manipulation supportRené 'Necoro' Neumann10-6/+85 2010-07-26Konstante KostenRené 'Necoro' Neumann1-1/+1 2010-07-26Added link to edit the constant stuffRené 'Necoro' Neumann1-1/+1 2010-07-26Added addition and modification of constant stuffRené 'Necoro' Neumann3-8/+106 2010-07-05Only show right nav arrow, if the following month is not in the futureRené 'Necoro' Neumann2-14/+20 2010-07-05Add month navigationRené 'Necoro' Neumann6-5/+35 2010-07-05Add iconRené 'Necoro' Neumann2-1/+2 2010-07-05change cursorRené 'Necoro' Neumann1-0/+5 2010-07-05Some restructuringRené 'Necoro' Neumann3-28/+45 2010-07-05Closed/Open imagesRené 'Necoro' Neumann4-0/+146 2010-05-25Move page templates into their own folderRené 'Necoro' Neumann5-5/+7 2010-05-25Added the ability to edit an expenseRené 'Necoro' Neumann3-9/+34 2010-05-12FixRené 'Necoro' Neumann1-2/+2 2010-05-12Show more detailsRené 'Necoro' Neumann4-19/+42 2010-05-12Create new form each timeRené 'Necoro' Neumann1-24/+26 2010-05-10Fix redirect in AddRené 'Necoro' Neumann1-1/+1 2010-05-10Added the 'add expense' stuffRené 'Necoro' Neumann4-3/+69