{
    "componentChunkName": "component---src-templates-blog-post-jsx",
    "path": "/post/how-to-update-puppetfile-at-once/",
    "result": {"data":{"site":{"siteMetadata":{"title":"WEB EGG","author":"Leko - CTO at Yuimedi"}},"markdownRemark":{"id":"bd39aa3a-9d23-561a-b48c-f2d4c3aec0ea","excerpt":"こんにちは。 今使っているMacBook Airの容量がほぼ一杯になってしまったので、 クリーンインストールをしようと思っています。 Time machineから復旧してしまうと何も変わらないので、 boxenというGithub…","html":"<p>こんにちは。<br>\n今使っているMacBook Airの容量がほぼ一杯になってしまったので、<br>\nクリーンインストールをしようと思っています。</p>\n<p>Time machineから復旧してしまうと何も変わらないので、<br>\n<a href=\"http://boxen.github.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">boxen</a>というGithub社が提供しているセットアップツールを使おうと思います。\n詳しい使い方は上記リンクをご参照ください。</p>\n<p>Boxenでは<code>Puppetfile</code>という設定ファイルで色々とアプリを読み込んだり出来るのですが、<br>\n<strong>このバージョンをいちいち更新するのがひどく面倒くさい</strong>。 でも、出来れば常にメンテされた最新版でありたい。</p>\n<p>そんな悩みを解消するため、<br>\n<strong>Pupeetfileで読み込んでいるResourcesのバージョンを全て更新するスクリプト</strong>を書きました。</p>\n<p>とてもピンポイントですが、<br>\n同じ悩みを抱える方には需要のある内容だと思います。</p>\n<!--more-->\n<h2 id=\"boxenとは基本的な使い方\" style=\"position:relative;\"><a href=\"#boxen%E3%81%A8%E3%81%AF%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E4%BD%BF%E3%81%84%E6%96%B9\" aria-label=\"boxenとは基本的な使い方 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>boxenとは、基本的な使い方</h2>\n<p>繰り返しになりますが、<br>\nboxenとは、Github社が提供しているMacのセットアップツールです。</p>\n<p>基本的な知識や導入方法についてはこちらのリンクを御覧ください。<br>\n先に下記リンクを読んでboxenについて軽く抑えておくといいと思います。</p>\n<ul>\n<li><a href=\"http://qiita.com/yuku_t/items/c6f20de0e4f4c352046c\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Boxen使わなくても許されるのは2012年までだよね</a></li>\n<li><a href=\"http://trapezoid.hatenablog.com/entry/2013/04/21/005524\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">boxenを導入した話 – diary</a></li>\n<li><a href=\"http://akiomik.hatenablog.jp/entry/2013/05/12/013923\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">github boxen使ってみてハマったところ – おみブロZ</a></li>\n</ul>\n<h2 id=\"puppetfileとは\" style=\"position:relative;\"><a href=\"#puppetfile%E3%81%A8%E3%81%AF\" aria-label=\"puppetfileとは permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Puppetfileとは</h2>\n<p>Puppetfileとは、</p>\n<blockquote>\n<p>外部のresourceを使う場合はここで指定する。現在主に仕えるのは<a href=\"https://github.com/boxen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">boxen</a>にある boxen-* という名前のリポジトリに入っているもの。設定自体は~/src/my-boxenにあるPuppetfileに書く。<br>\nPuppetfileには初期状態で何個か設定がある。こいつらはBoxen自体が使ったりするので消さないこと。<br>\n<a href=\"http://qiita.com/yuku_t/items/c6f20de0e4f4c352046c\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Boxen使わなくても許されるのは2012年までだよね</a></p>\n</blockquote>\n<p>とあるように、外部のresources(アプリやツールなど)を読み込むための設定ファイルです。<br>\n４行くらい例を出してみます。</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">github \"dropbox\",     \"1.0.0\"\ngithub \"mysql\",       \"1.0.0\"\ngithub \"iterm2\",      \"1.0.0\"\ngithub \"chrome\",      \"1.0.0\"</code></pre></div>\n<p>このように、<code>dropbox</code>や<code>chrome</code>、他にも<code>imagemagick</code>などがあって、<br>\n自分の作りたい環境に合わせて組み合わせることができます。</p>\n<p>resource名の後ろにある数字は、<strong>バージョン</strong>です。</p>\n<p>このバージョンはどこから取得するかというと、<br>\n例えば<code>dropbox</code>の場合なら、</p>\n<ol>\n<li><a href=\"https://github.com/boxen/puppet-dropbox\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://github.com/boxen/puppet-dropbox</a>にアクセスして</li>\n<li><code>Releases</code>をクリック、表示されたページにある<code>Tags</code>をクリックして、</li>\n<li>表示されたバージョンのいずれかを指定</li>\n</ol>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 600px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/9d6b68a6d08d7b57a09e75a884f8bd6a/0a47e/65ac0ccf93991a1bcddf1ec41ae71778.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 52.69461077844312%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'210\\'%20viewBox=\\'0%200%20400%20210\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M158%2021c0%205%200%205%203%205l4-1h2c2%202%205%201%206-2%200-4-3-6-6-4-1%202-2%202-2%201l-3-1-2-1-1-2-1%205m-38-3c-1%201-2%202-3%201l-4%201h-1l-3-1h-4v5l1%205%201-1%202-2%203-1h1l4%201c2%200%202%200%202-3%200-2%200-3%201-2l1%202%201%203c1%200%202-2%201-8h-3m24%202h-2l-2-1c-3%200-3%200-3%204l1%203c1%200%202-1%202-3s2-2%202%200c1%203%205%204%207%202%201-1%201-1%201%201l1%203%201-1%202-2c2%200%203-1%203-4s0-3-3-3l-4%201h-2l-2-2-2%202m52%2047l-28%2017c-3%200-3%200-4-4l-1-3-7%2013-7%2014c0%201%204%201%2016-1%2016-3%2016-3%2012-6l-3-3c0-1%207-9%2019-19l11-11c0-2-2-1-8%203m8%2057c4%203-2%206-20%2010-8%201-9%201-9-3%200-3%200-3-9%206l-9%2011%2026%203-2-3c-2-4%200-5%2018-13%2011-6%2016-9%2010-8-2%200-3%200-3-2l-1-2c-2%200-2%200-1%201m-10%2052l-16%205c-4%200-4%200-4-3l-1-3c-1%200-16%2019-15%2020%200%201%2022%202%2024%201l-1-2-2-3%202-2%2014-8c17-10%2016-11-1-5\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/9d6b68a6d08d7b57a09e75a884f8bd6a/5251b/65ac0ccf93991a1bcddf1ec41ae71778.webp 167w,\n/static/9d6b68a6d08d7b57a09e75a884f8bd6a/7390e/65ac0ccf93991a1bcddf1ec41ae71778.webp 334w,\n/static/9d6b68a6d08d7b57a09e75a884f8bd6a/e88ff/65ac0ccf93991a1bcddf1ec41ae71778.webp 600w\"\n              sizes=\"(max-width: 600px) 100vw, 600px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/9d6b68a6d08d7b57a09e75a884f8bd6a/21521/65ac0ccf93991a1bcddf1ec41ae71778.png 167w,\n/static/9d6b68a6d08d7b57a09e75a884f8bd6a/86d36/65ac0ccf93991a1bcddf1ec41ae71778.png 334w,\n/static/9d6b68a6d08d7b57a09e75a884f8bd6a/0a47e/65ac0ccf93991a1bcddf1ec41ae71778.png 600w\"\n            sizes=\"(max-width: 600px) 100vw, 600px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/9d6b68a6d08d7b57a09e75a884f8bd6a/0a47e/65ac0ccf93991a1bcddf1ec41ae71778.png\"\n            alt=\"結構めんどい手順\"\n            title=\"結構めんどい手順\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>という結構めんどい手順が必要です。</p>\n<p>読み込むファイルが10個くらいならまだ良いのですが、<br>\n色々欲しがってしまう僕は30個以上読み込んでいます。</p>\n<p><strong>これらのresource全てを最新版に保つのはあまりにめんどい！</strong><br>\n<strong>面倒なのもあるけど、見間違え、打ち間違えが出そう！</strong></p>\n<p>と思ったので、このバージョンを自動更新するスクリプトを書きました。</p>\n<h2 id=\"github-apiについて\" style=\"position:relative;\"><a href=\"#github-api%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\" aria-label=\"github apiについて permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Github APIについて</h2>\n<p><strong>resourceはGithubで公開されているなら、<br>\nGithubのAPIを使えばタグも取れんじゃない？</strong></p>\n<p>と思ったので、調べてみたらありました。 とあるリポジトリのタグ一覧を取得するには、</p>\n<blockquote>\n<p>GET /repos/:owner/:repo/tags<br>\n<a href=\"http://developer.github.com/v3/repos/#list-tags\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Repos | GitHub API</a></p>\n</blockquote>\n<p>とアクセスすればいいようです。</p>\n<p>これなら、別途設定ファイルを作らずに、<br>\nPuppetfileを読み込んで更新かけられそうです。</p>\n<h2 id=\"自動更新するスクリプト\" style=\"position:relative;\"><a href=\"#%E8%87%AA%E5%8B%95%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88\" aria-label=\"自動更新するスクリプト permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>自動更新するスクリプト</h2>\n<p>ということでphpで実装してみました。<br>\nソースコードは最後に載せます。</p>\n<p>このスクリプトを動かす前に<strong>少しだけ準備</strong>があります。</p>\n<p>boxenが必須としている部分を書き換えてしまうのは怖いので、<br>\n自動アップデートをかける範囲を指定できるようにしました。</p>\n<p>Puppetfileの中にこんな感じで指定します。</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\"># ---auto update---\ngithub \"osx\",            \"1.3.2\"\ngithub \"alfred\",         \"1.1.1\"\ngithub \"wunderlist\",     \"1.0.0\"\n…\n# ---/auto update---</code></pre></div>\n<p>この<code># ---auto update---</code>という部分はphpの中で定数化しているので、<br>\nダウンロードして各自お好みにカスタマイズして下さい。</p>\n<p>そして自動更新のphpファイルを、<strong>自分のboxenリポジトリ直下に配置</strong>します。<br>\nphpファイルを設置したら、ターミナルでそのリポジトリを開いて、</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">$ cd /path/to/my-boxen/\n$ php autoUpdate.php</code></pre></div>\n<p>と実行すると、<br>\nPuppetfileのコメントで指定した範囲内がアップデートされます。</p>\n<p>ちなみに、アップデートしたresourceは、標準出力で通知します。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 535px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/7e14bddd7e1a139c4635b177492ef624/b5245/4018a98968aaa5eb5e0c0b4df27bf5cd.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 26.94610778443114%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'108\\'%20viewBox=\\'0%200%20400%20108\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M0%2054c0%2053%200%2054%202%2054l2-1c0-3%202-2%202%200l1-1%201-2%201%202c1%202%201%202%201%200l2-2%203%202%201%201c0-1%201-3%203-3%202-2%202-2%202%201%200%202%200%203%202%202v-3c2%200%204%201%204%203l1%201%201-2c-1-3%201-3%203-2v4l2-2c1-3%204-3%205%200l1%201c0-1%203-5%205-5v6h6c6%200%207%200%207-2%201-3%204-3%205%200l1%201c0-2%203-3%204-2v1l-2%201%203%201c2%200%203%200%203-2l-1-2-1-1%202-1%201%203c0%203%200%203%203%203%202%200%203-2%201-2v-2c2-2%203-2%203-1-1%205%201%207%202%203%201-3%204-3%205%200l1%202v-1c0-2%203-4%204-2v2c1%201%202%200%202-1%201-3%204-3%205%200%200%202%201%202%207%202s7%200%207-2c-1-1%201-4%203-4l1%202-1%202-1%201%202%201%201-1%201-2%202-1%202%201-1%201-2%201%202%201%202-2c0-2%203-2%205-1h1c0-2%204-1%205%201%201%203%2010%202%2010-1l-1-1h-2l2-1c2%200%202%200%202%203-1%202%200%202%204%202%203%200%204%200%204-2%201-3%204-3%205%200%200%202%201%202%204%202%202%200%203%200%203-2s1-2%203-2c1%200%202%200%202%202%200%203%208%203%208%200-1-3%203-3%204-1h2c1-1%202-1%203%201%202%202%208%203%2010%201%201-2%201-2-1-2l-1-1%202-1c2%200%202%200%202%203-1%202-1%202%204%202s5%200%205-2c-1-2%200-3%201-3l1%203c0%203%207%203%208%200%201-4%205-4%206%200v2h176V0H205A1462%201462%200%20003%200H0v54m11-40v2h23l18-1c-4%200-5%200-5-2%200-1-1-2-18-2H11v3m46-1c0%205%201%206%206%206%203%200%204%200%203-1-4%200-4-2-1-2h9c6%200%206%200%206-2s-1-3-12-3c-10%200-11%200-11%202\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/7e14bddd7e1a139c4635b177492ef624/5251b/4018a98968aaa5eb5e0c0b4df27bf5cd.webp 167w,\n/static/7e14bddd7e1a139c4635b177492ef624/7390e/4018a98968aaa5eb5e0c0b4df27bf5cd.webp 334w,\n/static/7e14bddd7e1a139c4635b177492ef624/e0c9f/4018a98968aaa5eb5e0c0b4df27bf5cd.webp 535w\"\n              sizes=\"(max-width: 535px) 100vw, 535px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/7e14bddd7e1a139c4635b177492ef624/21521/4018a98968aaa5eb5e0c0b4df27bf5cd.png 167w,\n/static/7e14bddd7e1a139c4635b177492ef624/86d36/4018a98968aaa5eb5e0c0b4df27bf5cd.png 334w,\n/static/7e14bddd7e1a139c4635b177492ef624/b5245/4018a98968aaa5eb5e0c0b4df27bf5cd.png 535w\"\n            sizes=\"(max-width: 535px) 100vw, 535px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/7e14bddd7e1a139c4635b177492ef624/b5245/4018a98968aaa5eb5e0c0b4df27bf5cd.png\"\n            alt=\"標準出力で通知\"\n            title=\"標準出力で通知\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>こんな感じ</p>\n<h2 id=\"まとめ\" style=\"position:relative;\"><a href=\"#%E3%81%BE%E3%81%A8%E3%82%81\" aria-label=\"まとめ permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>まとめ</h2>\n<p>ソースコードはこちらになります。</p>\n<script src=\"https://gist.github.com/Leko/6098584.js\"></script>","timeToRead":5,"frontmatter":{"title":"boxenのPuppetfileを一発更新するスクリプトを書いた","tags":["Boxen","PHP"],"date":"July 28, 2013","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='143'%20viewBox='0%200%20400%20143'%20preserveAspectRatio='none'%3e%3cpath%20d='M33%204c-4%202-5%207-5%2019%201%2012%202%2014%207%2015%202%201%207%200%209-3V7c-3-3-7-4-11-3M8%205v17l1%2016h4c9%200%2013-3%2012-12l-1-11C23%207%2021%204%2014%204L8%205m42%200c-2%201-1%203%201%2010%202%204%203%207%202%208-2%204-5%2012-4%2014%201%203%204%201%206-4l2-4%201%204c2%204%204%206%206%204%201-1%201-3-1-9l-3-8%202-6c3-7%203-10%201-10s-4%202-5%205c0%204-1%204-3-1-2-4-4-5-5-3m20%200v31c1%203%2015%203%2015%200%201-1-1-4-2-4-6%201-8%200-8-3s0-3%203-3c6%200%207-5%201-6h-4v-5c0-5%201-6%206-5%203%200%205-2%204-4%200-2-14-3-15-1m19%200v17l1%2016h2c2%200%203-1%203-8l1-8%202%207%204%208c2%202%205%201%205-1a2415%202415%200%2000-2-32c-2%200-3%201-3%209v8l-4-8c-3-7-4-9-6-9l-3%201m234%202c-3%202-3%2014%200%2015%204%201%206-2%206-8%200-7-2-9-6-7m-11%208v7h3c4%200%205-2%205-7%200-6-1-8-5-8h-3v8m19-1c0%208%201%209%204%207l1-1c0%204%203%202%203-2V7l-2%201c1%203%200%205-2%205s-2-1-2-3%200-3-2-3v7m31-5c-3%206%200%2015%205%2013%202-1%202-2%202-8s-1-7-3-7-3%200-4%202m17%202v7c0%204%200%204%203%204h4v-7c0-7-1-8-5-8-2%200-3%200-2%204m-230-1h-4c-2-2-2%200-1%203%201%201%201%202%202%201h1c1%201%202%201%202-1%201-1%201-1%202%201h8c0%202%202%201%202-1l1%201h3c1%201%201%201%201-2s-3-5-4-2h-6c-3-2-7-2-7%200m40-1v2l-1%202-1%201%206%201c5%200%205%200%205-3%200-2%200-2%201%200%200%203%202%204%204%202h3c1%202%204%200%204-2l1-2%201%203%201%202%201-2v-3c2-1%201-2-2-1-3%200-4%201-4%202l-1%202-1-2c1-2-1-3-1-1h-1l-5-1c-5%200-6%201-5%203%200%202-2%201-3-2%200-2-1-2-2-1M35%2010l-1%2012c0%2010%201%2011%202%2011%203%200%204-3%203-14%200-9-2-11-4-9m286%2017l-1%206c0%205%200%205%202%205%203%200%205-2%203-4l1-1%201%203v3l1-3%201-2%201%202c2%203%203%202%203-3%200-6-2-9-2-4l-1%203-1-3c-1-3-1-3-2-2h-6M16%2069l-1%207v6h5l5-1h2c2%203%202%200%201-6-2-8-3-8-5%200-1%205-1%206-4%205-3%200-3-3%200-3l3-1-3-1c-3%200-2-3%201-4l1-1c-4-2-5-2-5-1m189%2015h-69l-8%207c-7%208-8%208-7%2021%200%204%200%204%201%202%202-6%203-6%2016-6h13l5%204%205%204%202%201%201%202%203%201c2%200%202%200%202-2l-2-2-8-4-7-5h-24l4-4%204-4h21a191%20191%200%200024%200l2%201c2-1%201%202%200%203-3%203-2%2011%201%209l5%203c6%204%206%204%2012%200%205-4%205-4%205-1l1%203v-3l1-2v-8l-1-3-1-2h11c10%200%2012%200%2013-2h2l1%202v2c-2%203-1%209%202%2013%204%203%204%203-3%209-6%206-6%207-8%205l-5-4-5-3h-4c0%203-11%2017-14%2018-3%202-5-1-12-10a698%20698%200%2000-6-7h-1l-4%202-6%203v1l-1%201c-1-1-2%200-2%201l1%201%203%206%202%206h50l1-4c3-10%203-9%206-7%202%201%204%203%205%206%202%203%202%203%203%201%200-2%201-2%201-1v2c-2%202-1%203%201%203s2-1%201-4l1-3%201%202c-1%202%202%203%203%200l2-2c2%200%202%200%200%202-4%204-3%205%208%205h10v-5c1-6%203-9%206-9l-1%203-3%207v4h4c5%200%205%200%205-3l1-4c1-1%200-1-1-1h-2l2-1%207-2c5%200%207%202%207%208%200%203%200%203%203%203h4V85c-1-1-13-2-90-1'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":2.783333333333333,"src":"/static/7001679e00f63141e754b81e489224b9/f32f2/featured-image.jpg","srcSet":"/static/7001679e00f63141e754b81e489224b9/466a3/featured-image.jpg 334w,\n/static/7001679e00f63141e754b81e489224b9/f32f2/featured-image.jpg 569w","srcWebp":"/static/7001679e00f63141e754b81e489224b9/3d427/featured-image.webp","srcSetWebp":"/static/7001679e00f63141e754b81e489224b9/cd98f/featured-image.webp 334w,\n/static/7001679e00f63141e754b81e489224b9/3d427/featured-image.webp 569w","sizes":"(max-width: 569px) 100vw, 569px"}}}}}},"pageContext":{"slug":"/how-to-update-puppetfile-at-once/","previous":{"fields":{"slug":"/write-post-with-markdown-without-plugin-production/"},"frontmatter":{"title":"AlfredにURLを貼り付けるとMarkdownのリンク形式にしてくれるWorkflowを作った","tags":["Alfred Workflows","PHP"]}},"next":{"fields":{"slug":"/try-clean-install-with-boxen/"},"frontmatter":{"title":"Macの容量が埋まってしまったのでboxenとクリーンインストールをしてみた","tags":["Boxen","Mac"]}}}},
    "staticQueryHashes": ["2585454260","2954598359"]}