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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Marin Usalj
May 29, 2014
Programming
16k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
500
Launch Arguments - the mysteries
supermarin
1
260
Swift for CLI tools
supermarin
16
25k
CocoaPods intro
supermarin
2
260
Private pods - best practices
supermarin
1
200
Alcatraz internals
supermarin
2
360
ObjectiveSugar & ObjectiveRecord
supermarin
5
600
Alcatraz - Xcode package manager
supermarin
3
360
BubbleWrap
supermarin
3
360
Other Decks in Programming
See All in Programming
What We Talk About When We Talk About XP
m_seki
2
390
Webの地図
yosuke_furukawa
PRO
1
470
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
55
36k
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
140
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
680
ALB ログから Trace を気合で繋げる技術
fohte
7
880
Oxlintはいいぞ(続)
yug1224
1
560
Foundry Localでエージェント開発
seosoft
0
150
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
660
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
130
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
KATA
mclloyd
PRO
35
15k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
430
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
Practical Orchestrator
shlominoach
191
12k
Thoughts on Productivity
jonyablonski
76
5.4k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
340
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
520
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
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