{"id":1881,"date":"2023-09-05T19:04:43","date_gmt":"2023-09-05T17:04:43","guid":{"rendered":"https:\/\/blogs.gentoo.org\/mgorny\/?p=1881"},"modified":"2023-09-05T19:05:33","modified_gmt":"2023-09-05T17:05:33","slug":"my-thin-wrapper-for-emerge","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/mgorny\/2023\/09\/05\/my-thin-wrapper-for-emerge\/","title":{"rendered":"My thin wrapper for emerge(1)"},"content":{"rendered":"<p>I&#8217;ve recently written a thin wrapper over <kbd>emerge<\/kbd> that I use in my development environment.  It does the following:<\/p>\n<ol>\n<li>set tmux pane title to the first package argument (so you can roughly see what&#8217;s emerging on every pane)<\/li>\n<li>beep meaningfully when emerge finishes (two beeps for success, three for failure),<\/li>\n<li>run <kbd>pip check<\/kbd> after successful run to check for mismatched Python dependencies.<\/li>\n<\/ol>\n<p><!--more--><\/p>\n<p>Here&#8217;s the code:<\/p>\n<pre>#!\/bin\/sh\r\n\r\nfor arg; do\r\n\tcase ${arg} in\r\n\t\t-*)\r\n\t\t\t;;\r\n\t\t*)\r\n\t\t\ttmux rename-window \"${arg}\"\r\n\t\t\tbreak\r\n\t\t\t;;\r\n\tesac\r\ndone\r\n\r\n\/usr\/bin\/emerge \"${@}\"\r\nret=${?}\r\n\r\nif [ \"${ret}\" -eq 0 ]; then\r\n\tpython3.11 -m pip check | grep -v certifi\r\nelse\r\n\ttput bel\r\n\tsleep 0.1\r\nfi\r\n\r\ntput bel\r\nsleep 0.1\r\ntput bel\r\n\r\nexit \"${ret}\"<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve recently written a thin wrapper over emerge that I use in my development environment. It does the following: set tmux pane title to the first package argument (so you can roughly see what&#8217;s emerging on every pane) beep meaningfully when emerge finishes (two beeps for success, three for failure), run pip check after successful &hellip; <a href=\"https:\/\/blogs.gentoo.org\/mgorny\/2023\/09\/05\/my-thin-wrapper-for-emerge\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;My thin wrapper for emerge(1)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":137,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[11],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/1881"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/users\/137"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/comments?post=1881"}],"version-history":[{"count":2,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/1881\/revisions"}],"predecessor-version":[{"id":1883,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/1881\/revisions\/1883"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/media?parent=1881"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/categories?post=1881"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/tags?post=1881"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}