forklift.plugin.zsh 3.43 KB
Newer Older
Shammel Lee's avatar
typo    
Shammel Lee committed
1
# Open folder in ForkLift.app or ForkLift2.app from console
Bodo Tasche's avatar
Bodo Tasche committed
2
# Author: Adam Strzelecki nanoant.com, modified by Bodo Tasche bitboxer.de
3
#         Updated to support ForkLift 2 and ForkLift 3 by Johan Kaving
4
#         Updated to support ForkLift from Setapp by Paul Rudkin
Bodo Tasche's avatar
Bodo Tasche committed
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#
# Usage:
#   fl [<folder>]
#
# Opens specified directory or current working directory in ForkLift.app
#
# Notes:
# It assumes Shift+Cmd+G launches go to folder panel and Cmd+N opens new
# app window.
#
# https://gist.github.com/3313481
function fl {
  if [ ! -z "$1" ]; then
    DIR=$1
    if [ ! -d "$DIR" ]; then
      DIR=$(dirname $DIR)
    fi
    if [ "$DIR" != "." ]; then
      PWD=`cd "$DIR";pwd`
    fi
  fi
  osascript 2>&1 1>/dev/null <<END
27

28
29
30
31
32
33
34
  try
    tell application "Finder"
        set forkLiftSetapp to name of application file id "com.binarynights.forklift-setapp"
    end tell
  on error err_msg number err_num
    set forkLiftSetapp to null
  end try
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  try
    tell application "Finder"
        set forkLift3 to name of application file id "com.binarynights.ForkLift-3"
    end tell
  on error err_msg number err_num
    set forkLift3 to null
  end try
  try
    tell application "Finder"
        set forkLift2 to name of application file id "com.binarynights.ForkLift2"
    end tell
  on error err_msg number err_num
    set forkLift2 to null
  end try
  try
    tell application "Finder"
        set forkLift to name of application file id "com.binarynights.ForkLift"
    end tell
  on error err_msg number err_num
    set forkLift to null
  end try
56

57
58
59
60
61
62
  if forkLiftSetapp is not null and application forkLiftSetapp is running then
    tell application forkLiftSetapp
        activate
        set forkLiftVersion to version
    end tell	
  else if forkLift3 is not null and application forkLift3 is running then
63
    tell application forkLift3
64
        activate
65
66
67
68
        set forkLiftVersion to version
    end tell
  else if forkLift2 is not null and application forkLift2 is running then
    tell application forkLift2
69
        activate
70
71
72
73
        set forkLiftVersion to version
    end tell
  else if forkLift is not null and application forkLift is running then
    tell application forkLift
74
        activate
75
76
77
        set forkLiftVersion to version
    end tell
  else
78
79
80
    if forkLiftSetapp is not null then
        set appName to forkLiftSetapp
    else if forkLift3 is not null then
81
82
83
84
85
        set appName to forkLift3
    else if forkLift2 is not null then
        set appName to forkLift2
    else if forkLift is not null then
        set appName to forkLift
86
    end if
87
88
89
90
91
92
93
94
95
96
97
98
    
    tell application appName
        activate
        set forkLiftVersion to version
    end tell
    repeat until application appName is running
        delay 1
    end repeat
    tell application appName
        activate
    end tell
  end if
99

100
101
  tell application "System Events"
    tell application process "ForkLift"
Bodo Tasche's avatar
Bodo Tasche committed
102
        try
103
            set topWindow to window 1
Bodo Tasche's avatar
Bodo Tasche committed
104
        on error
105
106
            keystroke "n" using command down
            set topWindow to window 1
Bodo Tasche's avatar
Bodo Tasche committed
107
108
        end try
        keystroke "g" using {command down, shift down}
109
110
111
112
113
114
115
116
117
118
        if forkLiftVersion starts with "3" then
            tell pop over of list of group of splitter group of splitter group of topWindow
                set value of text field 1 to "$PWD"
            end tell
        else
            tell sheet 1 of topWindow
                set value of text field 1 to "$PWD"
            end tell
        end if
        keystroke return
Bodo Tasche's avatar
Bodo Tasche committed
119
    end tell
120
  end tell
Bodo Tasche's avatar
Bodo Tasche committed
121
122
END
}