Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CLI apps. For fun and profit
Search
Marin Usalj
May 29, 2014
Programming
16k
4
Share
CLI apps. For fun and profit
Talk given at Cocoa Kucha on #inspect conference, May 2014
Marin Usalj
May 29, 2014
More Decks by Marin Usalj
See All by Marin Usalj
Code signing on iOS/OSX
supermarin
2
490
Launch Arguments - the mysteries
supermarin
1
250
Swift for CLI tools
supermarin
16
25k
CocoaPods intro
supermarin
2
250
Private pods - best practices
supermarin
1
190
Alcatraz internals
supermarin
2
340
ObjectiveSugar & ObjectiveRecord
supermarin
5
590
Alcatraz - Xcode package manager
supermarin
3
340
BubbleWrap
supermarin
3
360
Other Decks in Programming
See All in Programming
PHPer、Cloudflare に引っ越す
suguruooki
1
160
過去のレビュー知見をSkillsで資産化した話
pkshadeck
PRO
1
1.8k
Building on Bluesky's AT Protocol with Ruby
mackuba
0
110
空間オーディオの活用
objectiveaudio
0
150
tRPCの概要と少しだけパフォーマンス
misoton665
2
270
2026-04-15 Spring IO - I Can See Clearly Now
jonatan_ivanov
1
200
AlarmKitで明後日起きれるアラームアプリを作る
trickart
0
130
Kingdom of the Machine
yui_knk
2
1.5k
Road to RubyKaigi: Play Hard(ware)
makicamel
1
570
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
370
AIを導入する前にやるべきこと
negima
2
350
PHPでバイナリをパースして理解するASN.1
muno92
PRO
0
450
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.6k
How to make the Groovebox
asonas
2
2.2k
How to build a perfect <img>
jonoalderson
1
5.5k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.6k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Writing Fast Ruby
sferik
630
63k
30 Presentation Tips
portentint
PRO
1
290
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.8k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Transcript
CLI APPS. FOR FUN AND PROFIT @SUPERMARIN
WHEN FUNCTIONALITY NOT SUPPORTED BY GUI IT'S HARD TO AUTOMATE
TASKS ENDLESS POSSIBILITIES
HOW DO I RUBY, GO, PYTHON, EVEN OBJECTIVE-C
PIPELINE CAT BUILD.LOG | GREP ERROR | WC -L
STATUS CODES $ XCODEBUILD | TEE XCODEBUILD.LOG | XCPRETTY
XCODEBUILD FAILS, STATUS 0
PIPESTATUS [] $ xcodebuild | tee output.log | xcpretty $?
=> 0 ${PIPESTATUS[0]} => 65 ${PIPESTATUS[2]} => 0 $ xcodebuild | tee output.log | xcpretty; exit ${PIPESTATUS[0]}
SET -O PIPEFAIL $ xcodebuild | tee output.log | xcpretty
$ echo $? => 65
BEWARE OF YOUR $SHELL | $SHELL | Exit status |
Pipe status | Set a var | |--------|-------------|---------------|-------------| | bash | $? | $PIPESTATUS | export VAR= | |--------|-------------|---------------|-------------| | zsh | $status | $pipestatus | export VAR= | |--------|-------------|---------------|-------------| | fish | $status | / | set -x VAR |
#! #!/USR/BIN/ENV RUBY
POSIX FLAGS $ COMMAND --VERBOSE --COLOR = $ COMMAND -VC
(ONLY IN SILICON VALLEY)
CLI FRAMEWORKS DON'T DIY
XCPRETTY GITHUB.COM/SUPERMARIN/XCPRETTY
SUCH HTML
WHY IN THE WORLD? THERE'S XCTOOL
XCTOOL(XCODEBUILD) -FLAG -FLAG WRAPPING XCODEBUILD, RECREATING FLAGS
XCODEBUILD -FLAG -FLAG | XCPRETTY USING VANILLA XCODEBUILD
XCTOOL - TESTS maintaining separate settings XCODEBUILD - BETA XCODEBUILD
- APPSTORE maintaining separate settings
USED BY RUBYMOTION FACEBOOK (POP) AFNETWORKING KIWI YAMMER THOUGHTBOT MANY
OTHERS
<3 HIPBYTE YAMMER @KATTRALI