<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: neymarsabin</title>
    <description>The latest articles on DEV Community by neymarsabin (@neymarsabin).</description>
    <link>https://dev.to/neymarsabin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F27399%2F87771e24-099e-4e00-aeb1-77f2781b9441.jpeg</url>
      <title>DEV Community: neymarsabin</title>
      <link>https://dev.to/neymarsabin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/neymarsabin"/>
    <language>en</language>
    <item>
      <title>Fuzzy find project and auto attach-session in tmux</title>
      <dc:creator>neymarsabin</dc:creator>
      <pubDate>Mon, 25 Mar 2024 08:38:29 +0000</pubDate>
      <link>https://dev.to/neymarsabin/fuzzy-find-project-and-auto-attach-session-in-tmux-2nd2</link>
      <guid>https://dev.to/neymarsabin/fuzzy-find-project-and-auto-attach-session-in-tmux-2nd2</guid>
      <description>&lt;p&gt;I wrote this handy shell script to fuzzy find my projects and auto attach them to a new tmux session. It is minimal and it works!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/usr/bin/env sh&lt;/span&gt;
&lt;span class="c"&gt;# define the fzf command: ./.fzfdir.sh pet&lt;/span&gt;
&lt;span class="c"&gt;# syntax: ./.fzfdir.sh &amp;lt;working_directory&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;# note: I have base_dir as ~/projects&lt;/span&gt;
&lt;span class="c"&gt;# FZF_COMMAND="fzf-tmux"&lt;/span&gt;
&lt;span class="nv"&gt;FZF_COMMAND&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"fzf-tmux -p --with-nth 1"&lt;/span&gt;

&lt;span class="c"&gt;# find in directories&lt;/span&gt;
&lt;span class="nv"&gt;workdir&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;
&lt;span class="nv"&gt;base_dir&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;~/projects
&lt;span class="nv"&gt;find_dir&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$base_dir&lt;/span&gt;/&lt;span class="nv"&gt;$1&lt;/span&gt;

&lt;span class="c"&gt;# execute command&lt;/span&gt;
&lt;span class="nv"&gt;RESULT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nv"&gt;$find_dir&lt;/span&gt; | &lt;span class="nv"&gt;$FZF_COMMAND&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;# create a new tmux session and attach to it&lt;/span&gt;
&lt;span class="nv"&gt;window_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$RESULT&lt;/span&gt;
&lt;span class="nv"&gt;session_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"neymarsabin/&lt;/span&gt;&lt;span class="nv"&gt;$window_name&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="nv"&gt;workdir&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$find_dir&lt;/span&gt;/&lt;span class="nv"&gt;$RESULT&lt;/span&gt;
&lt;span class="nv"&gt;send_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"cd &lt;/span&gt;&lt;span class="nv"&gt;$workdir&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt; tmux has-session &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="nv"&gt;$session_name&lt;/span&gt; 2&amp;gt;/dev/null&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
  &lt;span class="c"&gt;## create new session, provide SESSION and WINDOW name&lt;/span&gt;
  &lt;span class="nv"&gt;new_session&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nv"&gt;TMUX&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; tmux new-session &lt;span class="nt"&gt;-A&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nv"&gt;$session_name&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="nv"&gt;$window_name&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

  &lt;span class="c"&gt;## switch and cd into project&lt;/span&gt;
  tmux switch-client &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="nv"&gt;$session_name&lt;/span&gt;
  tmux send-keys &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="nv"&gt;$session_name&lt;/span&gt;:&lt;span class="nv"&gt;$window_name&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$send_command&lt;/span&gt;&lt;span class="s2"&gt;; clear"&lt;/span&gt; C-m
&lt;span class="k"&gt;else
  &lt;/span&gt;tmux switch-client &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="nv"&gt;$session_name&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And, let's bind this to a keybinding in tmux.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bind-key "t" run "~/.fzfdir.sh oss"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can modify the shell script to your use case. You can checkout the implementation at: &lt;a href="https://github.com/neymarsabin/dotfiles_reloaded/blob/trail/scripts/fzfdir.sh"&gt;https://github.com/neymarsabin/dotfiles_reloaded/blob/trail/scripts/fzfdir.sh&lt;/a&gt; &lt;/p&gt;

</description>
      <category>tmux</category>
      <category>shell</category>
      <category>fzf</category>
    </item>
    <item>
      <title>RubyGem to fetch IPs of EC2 instances</title>
      <dc:creator>neymarsabin</dc:creator>
      <pubDate>Sun, 13 Dec 2020 04:38:14 +0000</pubDate>
      <link>https://dev.to/neymarsabin/rubygem-to-fetch-ips-of-ec2-instances-ma0</link>
      <guid>https://dev.to/neymarsabin/rubygem-to-fetch-ips-of-ec2-instances-ma0</guid>
      <description>&lt;p&gt;I wrote this gem to fetch IPs of EC2 instances during Capistrano deployment. This library fetches IPs based tags. AWS tags are kind of a cool thing available with every resource, rails application an EC2 instance can have tags like name, environment, role, etc. Use this gem to make Capistrano deployment easy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/neymarsabin/aws-dynamic-ip"&gt;https://github.com/neymarsabin/aws-dynamic-ip&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ec2</category>
      <category>ruby</category>
      <category>rails</category>
      <category>rubygem</category>
    </item>
  </channel>
</rss>
