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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Marin Usalj
May 29, 2014
Programming
4
16k
CLI apps. For fun and profit
Talk given at Cocoa Kucha on #inspect conference, May 2014
Marin Usalj
May 29, 2014
Tweet
Share
More Decks by Marin Usalj
See All by Marin Usalj
Code signing on iOS/OSX
supermarin
2
480
Launch Arguments - the mysteries
supermarin
1
240
Swift for CLI tools
supermarin
16
25k
CocoaPods intro
supermarin
2
240
Private pods - best practices
supermarin
1
180
Alcatraz internals
supermarin
2
320
ObjectiveSugar & ObjectiveRecord
supermarin
5
570
Alcatraz - Xcode package manager
supermarin
3
330
BubbleWrap
supermarin
3
350
Other Decks in Programming
See All in Programming
オブザーバビリティ駆動開発って実際どうなの?
yohfee
3
670
SourceGeneratorのマーカー属性問題について
htkym
0
130
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
14
7.8k
2026年は Rust 置き換えが流行る! / 20260220-niigata-5min-tech
girigiribauer
0
220
Claude Code、ちょっとした工夫で開発体験が変わる
tigertora7571
0
190
AI活用のコスパを最大化する方法
ochtum
0
120
AHC061解説
shun_pi
0
310
株式会社 Sun terras カンパニーデック
sunterras
0
2k
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
200
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
230
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
330
atmaCup #23でAIコーディングを活用した話
ml_bear
4
730
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
How GitHub (no longer) Works
holman
316
140k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
210
A Soul's Torment
seathinner
5
2.4k
Crafting Experiences
bethany
1
75
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
Mind Mapping
helmedeiros
PRO
1
110
Documentation Writing (for coders)
carmenintech
77
5.3k
Deep Space Network (abreviated)
tonyrice
0
85
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
470
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
180
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