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
240
Private pods - best practices
supermarin
1
190
Alcatraz internals
supermarin
2
330
ObjectiveSugar & ObjectiveRecord
supermarin
5
580
Alcatraz - Xcode package manager
supermarin
3
340
BubbleWrap
supermarin
3
360
Other Decks in Programming
See All in Programming
UIの境界線をデザインする | React Tokyo #15 メイントーク
sasagar
2
360
NakouPAY説明用
annouim0
0
240
GitHubCopilotCLIをはじめよう.pdf
htkym
0
190
mruby on C#: From VM Implementation to Game Scripting (RubyKaigi 2026)
hadashia
2
550
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
150
Don't Prompt Harder, Structure Better
kitasuke
0
770
Server-Side Kotlin LT大会 vol.18 [Kotlin-lspの最新情報と Neovimのlsp設定例]
yasunori0418
1
160
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
440
おれのAgentic Coding 2026/03
tsukasagr
1
150
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
290
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
PDI: Como Alavancar Sua Carreira e Seu Negócio
marcelgsantos
0
120
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
180
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
270
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
340
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
530
Designing Experiences People Love
moore
143
24k
Site-Speed That Sticks
csswizardry
13
1.2k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
320
Optimizing for Happiness
mojombo
378
71k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Design in an AI World
tapps
1
200
Music & Morning Musume
bryan
47
7.2k
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