Alfred实现一键获取AppID等信息
有时想获取Mac下App的ID/版本等信息,finder中来回查看拷贝低效,因此利用Alfred Universal action实现下一键获取。
效果
回车即拷贝至剪贴板
原理
AppleScript可以方便获取指定App的版本/ID信息
1
2set appId to name of application "/Users/alanhe/Applications/JetBrains Toolbox/WebStorm.app"
copy appId to stdout
具体可以获取哪些属性查看这里
Mac自带Ruby/Python环境,因此都可以读取
/Applications
下App程序1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20require 'json'
require 'open3'
require 'pathname'
apps = Pathname('/Applications').children
.concat(Pathname('/Applications/Utilities').children)
.map(&:to_path)
.sort_by { |p| File.basename(p).downcase }
.select { |e| e.end_with?('.app') }
script_filter_items = []
apps.each do |app|
version = Open3.capture2('mdls', '-raw', '-name', 'kMDItemVersion', app).first
next if version == '(null)'
name = File.basename(app, '.app')
script_filter_items.push(title: name, subtitle: version, arg: version, icon: { type: 'fileicon', path: app })
end
puts({ items: script_filter_items }.to_json)
写在最后
如何,就问你Alfred香不香。