题图背景选自 Joanna Kosinska 的摄影作品

本节知识点预告:

  1. 使用 gdrive 上传文件及文件夹;
  2. 在 LaunchBar 中建立 action 的基本流程;
  3. 使用 AppleScript 把文件或文件夹传递给 LaunchBar;
  4. 使用 AppleScript 获取文件或文件夹的路径;
  5. 使用 AppleScript 运行 Shell 脚本;
  6. 使用 AppleScript 建立简单的对话框。

最近公司给我用 Google Drive 传了一大堆工作用的文件。我不喜欢使用 Google Drive,因为它的 Windows 桌面端和 iOS 端都不足够好用。所以我不打算冒险在 MacBook 上再安装一个。

于是我想,可不可以无需打开网页端的 Google Drive 而直接用更快键的方式来实现文件的上传呢? 于是搜索了一下,发现一个命令行软件 gdrive 可以实现这个功能。所以我准备把它和 LaunchBar 结合在一起,用 LaunchBar 执行 gdrive 的功能。

安装 gdrive

我们 Homebrew 安装 gdrive,在终端输入:

brew install gdrive

即可。关于 Homebrew 的文章非常多,如还不了解它是什么,请参阅 Homebrew 主页这篇文章 。

安装完成后, 在终端输入 gdrive list 就会出现一个授权提示,依照这个提示进行操作就可以把自己的 Google Drive 账号授权与 gdrive 绑定。之后再输入 gdrive list 就可以显示出 Google Drive 中的文件列表了。

输入 gdrive help 可以列出各种操作所需要的指令,为完成文件的上传我们可以使用 gdrive upload 。

与 LaunchBar 结合

之后要在 LaunchBar 中建立一个 action 来召出上述指令。在 LaunchBar 中输入 ACTION 来启动 Action Editor:

启动后,按下 ⌘ N 新建 action,并将其命名为「Upload to Google Drive」:

这个 action 我们通过 AppleScript 来实现。右边的 Scripts 页面中选择 AppleScripts 并点击后面的 Edit:

把下列代码复制进打开的 Script Editor,其中各段落相应的含义都写在对应的位置:

# 把文件传递给 LaunchBar
on open (_files)
	repeat with _file in _files
		# 获取文件名并在其中的空格前加上反斜杠 “\”。
		set file_path to POSIX path of _file
		set oldDelimiters to AppleScript's text item delimiters
		set AppleScript's text item delimiters to " "
		set myList to every text item of file_path
		set AppleScript's text item delimiters to "\\ "
		set file_path to myList as string
		set AppleScript's text item delimiters to oldDelimiters
		get file_path
		# 运行 Shell 脚本:用 gdrive 上传所选文件。
		# --recursive 用于上传文件夹或文件。
		try
			do shell script "/usr/local/bin/gdrive upload --recursive " & file_path
		end try
	end repeat
	# 弹出上传完毕对话框, 询问是否打开 Google Drive 页面。
	display dialog "Uploading finished! Open the website of Google Drive?" buttons ¬
		{"Yes", "No"} default button 1
	set DlogResult to result
	if button returned of result = "Yes" then
		do shell script "open https://drive.google.com/drive/my-drive"
	end if
end open

保存后退出 Script Editor。到此为止就完成了这个 action 功能性的部分。

接着我们给这个 action 添加 Logo。下载 Google Drive 的官方 Logo 的图片文件后。返回到 Action Editor 中,打开 Resources 页面,在其中添加刚刚下载好的文件并重命令为「drive.png」:

再打开 General 页面在 Action Icon 中写入 「drive.png」:

这样这个 action 就完成了。

测试

我们可以通过一个小文件来试验一下这个 action。在 Finder 中选择一个文件,把它快速发送(Instand Send)至 LaunchBar1 ,再按 tab 键对文件进行进一步操作,输入 UPLGD:

选择 Upload to Google Drive,文件上传成功后,会弹出一个对话框,询问是否打到 Google Drive 网页。默认选择为 Yes,直接按下回车就可以在浏览器中查看上传的文件了:


你也可以关注文章下方的「LaunchBar 实验室」专栏,在少数派阅读更多关于 LaunchBar 的内容。