<?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: abdfn</title>
    <description>The latest articles on DEV Community by abdfn (@abdfnx).</description>
    <link>https://dev.to/abdfnx</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%2F497135%2Fadef3646-1f30-4786-9143-f9a06f83c99a.png</url>
      <title>DEV Community: abdfn</title>
      <link>https://dev.to/abdfnx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdfnx"/>
    <language>en</language>
    <item>
      <title>Botway - 🤖 Generate, build, handle and deploy your own bot with your favorite language, for Discord, or Telegram, or Slack.</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Tue, 21 Jun 2022 07:29:09 +0000</pubDate>
      <link>https://dev.to/abdfnx/botway-generate-build-handle-and-deploy-your-own-bot-with-your-favorite-language-for-discord-or-telegram-or-slack-2lam</link>
      <guid>https://dev.to/abdfnx/botway-generate-build-handle-and-deploy-your-own-bot-with-your-favorite-language-for-discord-or-telegram-or-slack-2lam</guid>
      <description>&lt;p&gt;
  &lt;a href="https://botway.web.app" rel="noopener noreferrer"&gt;
    &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbotway-cdn.onrender.com%2Fbotway.svg" alt="Botway"&gt;
  &lt;/a&gt;
&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abdfnx" rel="noopener noreferrer"&gt;
        abdfnx
      &lt;/a&gt; / &lt;a href="https://github.com/abdfnx/botway" rel="noopener noreferrer"&gt;
        botway
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🤖 Generate, build, handle and deploy your own Bot with your favorite language, for Discord, or Telegram, or even Slack
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Don't forgot to star the repo if you like it&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;🤖 Generate, build, handle and deploy your own bot with your favorite language, for Discord, or Telegram, or Slack, or even Twitch.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With botway, you can focus on your bot's logic and don't worry about the infrastructure. and we will take care of the rest.&lt;/p&gt;

&lt;p&gt;Botway uses &lt;a href="https://railway.app" rel="noopener noreferrer"&gt;Railway&lt;/a&gt; and &lt;a href="https://render.com" rel="noopener noreferrer"&gt;Render&lt;/a&gt; to host your bot code and database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhb4csxddijv2uocd6cxb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhb4csxddijv2uocd6cxb.png" alt="Preview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://railway.app" rel="noopener noreferrer"&gt;&lt;strong&gt;Railway Account&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.com" rel="noopener noreferrer"&gt;&lt;strong&gt;Render Account&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation ⬇
&lt;/h2&gt;

&lt;h3&gt;
  
  
  NPM
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# npm&lt;/span&gt;
npm i &lt;span class="nt"&gt;-g&lt;/span&gt; botway

&lt;span class="c"&gt;# yarn&lt;/span&gt;
yarn global add botway

&lt;span class="c"&gt;# pnpm&lt;/span&gt;
pnpm add &lt;span class="nt"&gt;-g&lt;/span&gt; botway
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using script
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Shell
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sL&lt;/span&gt; https://bit.ly/botway | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;PowerShell
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://bit.ly/bw-win&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;then restart your powershell&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Homebrew
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install abdfnx/tap/botway
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Scoop
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;scoop bucket add botway https://github.com/abdfnx/botway
scoop install botway
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Initialize &lt;code&gt;~/.botway&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  botway init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Authenticate with your favorite host service
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# railway&lt;/span&gt;
  botway login railway

  &lt;span class="c"&gt;# render&lt;/span&gt;
  botway login render
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Open Botway TUI
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  botway
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Create a new botway project
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  botway new &amp;lt;project-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Manage your bot tokens
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  botway tokens &amp;lt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;flags] &amp;lt;project-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Start running your bot
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# Under the project directory&lt;/span&gt;
  botway start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Manage your bot database
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# Under the project directory&lt;/span&gt;
  botway database &amp;lt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Deploy and upload project from the current directory
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# Under the project directory&lt;/span&gt;
  botway deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Execute a local command using variables from the active environment
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# Under the project directory&lt;/span&gt;
  botway &lt;span class="nb"&gt;exec&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You can see the &lt;a href="https://github.com/users/abdfnx/projects/10" rel="noopener noreferrer"&gt;&lt;strong&gt;Roadmap&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Keyboard shortcuts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Up: &lt;strong&gt;Move up&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Down: &lt;strong&gt;Move down&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Tab: &lt;strong&gt;Switch windows&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Ctrl+O: &lt;strong&gt;Open bot project at Host Service&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Esc: &lt;strong&gt;Reset&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Ctrl+Q: &lt;strong&gt;Quit&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Technologies Used in Botway
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://railway.app" rel="noopener noreferrer"&gt;&lt;strong&gt;Railway API&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.com" rel="noopener noreferrer"&gt;&lt;strong&gt;Render Rest API&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://charm.sh" rel="noopener noreferrer"&gt;&lt;strong&gt;Charm&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/spf13/cobra" rel="noopener noreferrer"&gt;&lt;strong&gt;Cobra&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/spf13/viper" rel="noopener noreferrer"&gt;&lt;strong&gt;Viper&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tidwall/gjson" rel="noopener noreferrer"&gt;&lt;strong&gt;GJson&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/muesli/termenv" rel="noopener noreferrer"&gt;&lt;strong&gt;Termenv&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/elewis787/boa" rel="noopener noreferrer"&gt;&lt;strong&gt;Boa&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Special thanks ❤
&lt;/h2&gt;

&lt;p&gt;Thanks to &lt;a href="https://github.com/charmbracelet" rel="noopener noreferrer"&gt;&lt;strong&gt;@charmbracelet&lt;/strong&gt;&lt;/a&gt; for their awesome TUI libraries 🏗.&lt;/p&gt;

&lt;p&gt;Also thanks to &lt;a href="https://github.com/railwayapp" rel="noopener noreferrer"&gt;&lt;strong&gt;@railwayapp&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://github.com/renderinc" rel="noopener noreferrer"&gt;&lt;strong&gt;@renderinc&lt;/strong&gt;&lt;/a&gt; for their amazing cloud and host services ☁️.&lt;/p&gt;

&lt;h3&gt;
  
  
  License
&lt;/h3&gt;

&lt;p&gt;botway is licensed under the terms of &lt;a href="https://github.com/abdfnx/botway/blob/main/LICENSE" rel="noopener noreferrer"&gt;MIT&lt;/a&gt; license.&lt;/p&gt;

&lt;h2&gt;
  
  
  Star History
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://star-history.com/#abdfnx/botway" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fapi.star-history.com%2Fsvg%3Frepos%3Dabdfnx%2Fbotway%26type%3DDate" alt="Star History Chart"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>beginners</category>
      <category>bash</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Gomo - 📐 Simple Golang multi modules tool.</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Sat, 23 Apr 2022 18:38:33 +0000</pubDate>
      <link>https://dev.to/abdfnx/gomo-simple-golang-multi-modules-tool-plk</link>
      <guid>https://dev.to/abdfnx/gomo-simple-golang-multi-modules-tool-plk</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/abdfnx/gomo#gh-light-mode-only" rel="noopener noreferrer"&gt;&lt;br&gt;
  &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fabdfnx%2Fgomo%2Fraw%2Fmain%2F.github%2Fassets%2Flogo.png" alt="Gomo"&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abdfnx" rel="noopener noreferrer"&gt;
        abdfnx
      &lt;/a&gt; / &lt;a href="https://github.com/abdfnx/gomo" rel="noopener noreferrer"&gt;
        gomo
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      📐 Simple Golang multi modules tool. inspired from turborepo.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;Gomo is a Simple Golang multi modules tool. inspired from &lt;a href="https://turborepo.org" rel="noopener noreferrer"&gt;turborepo&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Installation ⬇
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using script
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Shell
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sL&lt;/span&gt; https://bit.ly/gomo-cli | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;PowerShell
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;iwr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-useb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://bit.ly/gomo-win&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;then restart your powershell&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Homebrew
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install abdfnx/tap/gomo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Creates a new gomo.json file in the current folder
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gomo init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Initialize a new module
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gomo init &lt;span class="nt"&gt;--mod&lt;/span&gt; github.com/x/x2 &lt;span class="nt"&gt;--path&lt;/span&gt; &lt;span class="nb"&gt;dir&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Download go packages through all your modules
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gomo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Get a go package and add it through all modules
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gomo get github.com/gorilla/mux
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Delete a go package through all modules
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gomo delete github.com/example/example1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Update all packages
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gomo update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add any missing packages necessary to build all your modules
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gomo tidy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Gomo config file
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"cmds"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"download"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"go mod download"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"update"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"go get -u"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"modules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"test"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"test/web"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;thank you for your time and don't forgot to star the repo if you like it&lt;/p&gt;

</description>
      <category>go</category>
      <category>bash</category>
      <category>tooling</category>
      <category>github</category>
    </item>
    <item>
      <title>Tran - 🖥 Securely transfer and send anything between computers with TUI.</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Fri, 11 Feb 2022 05:22:43 +0000</pubDate>
      <link>https://dev.to/abdfnx/tran-securely-transfer-and-send-anything-between-computers-with-tui-1f30</link>
      <guid>https://dev.to/abdfnx/tran-securely-transfer-and-send-anything-between-computers-with-tui-1f30</guid>
      <description>&lt;p&gt;
  &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fabdfnx%2Ftran%2Fmain%2F.github%2Fassets%2Flogo.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fabdfnx%2Ftran%2Fmain%2F.github%2Fassets%2Flogo.svg"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F64256993%2F152999023-fbbe04aa-a4b5-449c-b589-27e1169cf851.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F64256993%2F152999023-fbbe04aa-a4b5-449c-b589-27e1169cf851.gif" alt="computer 1"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F64256993%2F153002664-9c3db89e-5c71-4555-afa0-3866e37f5339.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F64256993%2F153002664-9c3db89e-5c71-4555-afa0-3866e37f5339.gif" alt="computer 2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🖥️ Securely transfer and send anything between computers with TUI.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abdfnx" rel="noopener noreferrer"&gt;
        abdfnx
      &lt;/a&gt; / &lt;a href="https://github.com/abdfnx/tran" rel="noopener noreferrer"&gt;
        tran
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🖥 Securely transfer and send anything between computers with TUI.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using script
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Shell
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -fsSL https://cutt.ly/tran-cli | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;PowerShell
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;iwr -useb https://cutt.ly/tran-win | iex
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;then restart your powershell&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Homebrew
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;abdfnx/tap/tran
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Go package manager
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;go &lt;span class="nb"&gt;install &lt;/span&gt;github.com/abdfnx/tran@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  GitHub CLI
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh extension &lt;span class="nb"&gt;install &lt;/span&gt;abdfnx/gh-tran
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open Tran UI
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tran
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Open with specific path
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tran --start-dir $PATH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Send files to a remote computer
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tran send &amp;lt;FILE || DIRECTORY&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Receive files from a remote computer
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tran receive &amp;lt;PASSWORD&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tran Config file
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;tran config file is located at &lt;code&gt;~/.config/tran/tran.yml&lt;/code&gt; | &lt;code&gt;$HOME/tran.yml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;config&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;borderless&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
  &lt;span class="na"&gt;editor&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;vim&lt;/span&gt;
  &lt;span class="na"&gt;enable_mousewheel&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;show_updates&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;start_dir&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Flags
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;--start-dir string   Starting directory for Tran
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Shortkeys
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
tab: Switch between boxes&lt;/li&gt;
&lt;li&gt;
up: Move up&lt;/li&gt;
&lt;li&gt;
down: Move down&lt;/li&gt;
&lt;li&gt;
left: Go back a directory&lt;/li&gt;
&lt;li&gt;
right: Read file or enter directory&lt;/li&gt;
&lt;li&gt;
V: View directory&lt;/li&gt;
&lt;li&gt;
T: Go to top&lt;/li&gt;
&lt;li&gt;
G: Go to bottom&lt;/li&gt;
&lt;li&gt;
~: Go to your home directory&lt;/li&gt;
&lt;li&gt;
/: Go to root directory&lt;/li&gt;
&lt;li&gt;
.: Toggle hidden files and directories&lt;/li&gt;
&lt;li&gt;
D: Only show directories&lt;/li&gt;
&lt;li&gt;
F: Only show files&lt;/li&gt;
&lt;li&gt;
E: Edit file&lt;/li&gt;
&lt;li&gt;
ctrl+s: Send files/directories to remote&lt;/li&gt;
&lt;li&gt;
ctrl+r: Receive files/directories from remote&lt;/li&gt;
&lt;li&gt;
ctrl+f: Find files and directories by name&lt;/li&gt;
&lt;li&gt;
q/ctrl+q: Quit&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Technologies Used in Tran
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://charm.sh" rel="noopener noreferrer"&gt;&lt;strong&gt;Charm&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/alecthomas/chroma" rel="noopener noreferrer"&gt;&lt;strong&gt;Chroma&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/disintegration/imaging" rel="noopener noreferrer"&gt;&lt;strong&gt;Imaging&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gorilla/websocket" rel="noopener noreferrer"&gt;&lt;strong&gt;Gorilla Websocket&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/schollz/pake" rel="noopener noreferrer"&gt;&lt;strong&gt;PAKE&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/spf13/cobra" rel="noopener noreferrer"&gt;&lt;strong&gt;Cobra&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/spf13/viper" rel="noopener noreferrer"&gt;&lt;strong&gt;Viper&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tidwall/gjson" rel="noopener noreferrer"&gt;&lt;strong&gt;GJson&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/muesli/termenv" rel="noopener noreferrer"&gt;&lt;strong&gt;Termenv&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  License
&lt;/h3&gt;

&lt;p&gt;tran is licensed under the terms of &lt;a href="https://github.com/abdfnx/tran/blob/main/LICENSE" rel="noopener noreferrer"&gt;MIT&lt;/a&gt; license.&lt;/p&gt;

</description>
      <category>go</category>
      <category>bash</category>
      <category>showdev</category>
      <category>git</category>
    </item>
    <item>
      <title>Doko - 🐳 docker you know but with TUI</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Fri, 07 Jan 2022 10:29:58 +0000</pubDate>
      <link>https://dev.to/abdfnx/doko-docker-you-know-but-with-console-user-interface-fma</link>
      <guid>https://dev.to/abdfnx/doko-docker-you-know-but-with-console-user-interface-fma</guid>
      <description>&lt;h2&gt;
  
  
  Doko
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abdfnx" rel="noopener noreferrer"&gt;
        abdfnx
      &lt;/a&gt; / &lt;a href="https://github.com/abdfnx/doko" rel="noopener noreferrer"&gt;
        doko
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🐳 The docker you know but with TUI.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;🐳 docker you know but with TUI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F64256993%2F148515590-dccda7c1-73ea-45c6-80b6-901633861fde.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F64256993%2F148515590-dccda7c1-73ea-45c6-80b6-901633861fde.gif" alt="preview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;this app is inspired from &lt;a href="https://github.com/jesseduffield/lazydocker" rel="noopener noreferrer"&gt;lazydocker&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using script
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Shell&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

curl -sL https://git.io/doko | bash


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;PowerShell&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

iwr -useb https://git.io/doko-win | iex


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h4&gt;
  
  
  or with &lt;a href="https://github.com/abdfnx/resto" rel="noopener noreferrer"&gt;&lt;strong&gt;resto&lt;/strong&gt;&lt;/a&gt;
&lt;/h4&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="c"&gt;# shell&lt;/span&gt;
resto &lt;span class="nb"&gt;install &lt;/span&gt;https://git.io/doko

&lt;span class="c"&gt;# powershell&lt;/span&gt;
resto &lt;span class="nb"&gt;install &lt;/span&gt;https://git.io/doko-win


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;then restart your powershell&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Go package manager
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

go &lt;span class="nb"&gt;install &lt;/span&gt;github.com/abdfnx/doko@latest


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Via Docker
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

docker run &lt;span class="nt"&gt;-itv&lt;/span&gt; /var/run/docker.sock:/var/run/docker.sock dokocli/doko
docker run &lt;span class="nt"&gt;-itv&lt;/span&gt; /var/run/docker.sock:/var/run/docker.sock dokocli/doko &amp;lt;FLAGS&amp;gt;
docker run &lt;span class="nt"&gt;-itv&lt;/span&gt; /var/run/docker.sock:/var/run/docker.sock dokocli/doko &amp;lt;CMD&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;full container:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

docker run &lt;span class="nt"&gt;-itv&lt;/span&gt; /var/run/docker.sock:/var/run/docker.sock dokocli/doko-full


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open Doko UI&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

doko


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;With specific endpoint&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

doko --endpoint &amp;lt;DOCKER_ENDPOINT&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

* Use another docker engine version
doko --engine "1.40"


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Log file path&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&lt;p&gt;doko --log-file /home/doko/my-log.log&lt;/p&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Flags&lt;br&gt;
&lt;/h2&gt;
&lt;br&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;--ca string          The path to the TLS CA (ca.pem)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;-c, --cert string        The path to the TLS certificate (cert.pem)&lt;br&gt;
-e, --endpoint string    The docker endpoint to use (default "unix:///var/run/docker.sock")&lt;br&gt;
-g, --engine string      The docker engine version (default "1.41")&lt;br&gt;
    --help               Help for doko&lt;br&gt;
-k, --key string         The path to the TLS key (key.pem)&lt;br&gt;
-l, --log-file string    The path to the log file&lt;br&gt;
-o, --log-level string   The log level (default "info")&lt;/p&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Keybindings (Shortcuts)&lt;br&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;mission&lt;/th&gt;
&lt;th&gt;key(s)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;all&lt;/td&gt;
&lt;td&gt;quit&lt;/td&gt;
&lt;td&gt;q&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;all&lt;/td&gt;
&lt;td&gt;change panel&lt;/td&gt;
&lt;td&gt;
Tab or Shift + Tab
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;list panels&lt;/td&gt;
&lt;td&gt;next entry&lt;/td&gt;
&lt;td&gt;
j or ↓
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;list panels&lt;/td&gt;
&lt;td&gt;next page&lt;/td&gt;
&lt;td&gt;
Ctrl or f
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;list panels&lt;/td&gt;
&lt;td&gt;previous entry&lt;/td&gt;
&lt;td&gt;
k or ↑
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;list panels&lt;/td&gt;
&lt;td&gt;previous page&lt;/td&gt;
&lt;td&gt;
Ctrl or b
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;list panels&lt;/td&gt;
&lt;td&gt;scroll to top&lt;/td&gt;
&lt;td&gt;g&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;list panels&lt;/td&gt;
&lt;td&gt;scroll to bottom&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image list&lt;/td&gt;
&lt;td&gt;pull image&lt;/td&gt;
&lt;td&gt;p&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image list&lt;/td&gt;
&lt;td&gt;import image&lt;/td&gt;
&lt;td&gt;i&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image list&lt;/td&gt;
&lt;td&gt;save image&lt;/td&gt;
&lt;td&gt;s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image list&lt;/td&gt;
&lt;td&gt;load image&lt;/td&gt;
&lt;td&gt;
Ctrl + l
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image list&lt;/td&gt;
&lt;td&gt;find images&lt;/td&gt;
&lt;td&gt;f&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image list&lt;/td&gt;
&lt;td&gt;delete image&lt;/td&gt;
&lt;td&gt;d&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image list&lt;/td&gt;
&lt;td&gt;filter image&lt;/td&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image list&lt;/td&gt;
&lt;td&gt;create container&lt;/td&gt;
&lt;td&gt;c&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image list&lt;/td&gt;
&lt;td&gt;inspect image&lt;/td&gt;
&lt;td&gt;Enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;image list&lt;/td&gt;
&lt;td&gt;refresh image list&lt;/td&gt;
&lt;td&gt;
Ctrl + r
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;export container&lt;/td&gt;
&lt;td&gt;e&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;commit container&lt;/td&gt;
&lt;td&gt;c&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;filter image&lt;/td&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;exec container cmd&lt;/td&gt;
&lt;td&gt;
Ctrl + e
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;start container&lt;/td&gt;
&lt;td&gt;t&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;stop container&lt;/td&gt;
&lt;td&gt;s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;kill container&lt;/td&gt;
&lt;td&gt;
Ctrl + k
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;delete container&lt;/td&gt;
&lt;td&gt;d&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;inspect container&lt;/td&gt;
&lt;td&gt;Enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;rename container&lt;/td&gt;
&lt;td&gt;r&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container list&lt;/td&gt;
&lt;td&gt;refresh container list&lt;/td&gt;
&lt;td&gt;
Ctrl + r
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;container logs&lt;/td&gt;
&lt;td&gt;show container logs&lt;/td&gt;
&lt;td&gt;
Ctrl + l
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;volume list&lt;/td&gt;
&lt;td&gt;create volume&lt;/td&gt;
&lt;td&gt;c&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;volume list&lt;/td&gt;
&lt;td&gt;delete volume&lt;/td&gt;
&lt;td&gt;d&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;volume list&lt;/td&gt;
&lt;td&gt;filter volume&lt;/td&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;volume list&lt;/td&gt;
&lt;td&gt;inspect volume&lt;/td&gt;
&lt;td&gt;Enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;volume list&lt;/td&gt;
&lt;td&gt;refresh volume list&lt;/td&gt;
&lt;td&gt;
Ctrl + r
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;network list&lt;/td&gt;
&lt;td&gt;delete network&lt;/td&gt;
&lt;td&gt;d&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;network list&lt;/td&gt;
&lt;td&gt;inspect network&lt;/td&gt;
&lt;td&gt;Enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;network list&lt;/td&gt;
&lt;td&gt;filter network&lt;/td&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pull image&lt;/td&gt;
&lt;td&gt;pull image&lt;/td&gt;
&lt;td&gt;Enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pull image&lt;/td&gt;
&lt;td&gt;close panel&lt;/td&gt;
&lt;td&gt;Esc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;create container&lt;/td&gt;
&lt;td&gt;next input box&lt;/td&gt;
&lt;td&gt;Tab&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;create container&lt;/td&gt;
&lt;td&gt;previous input box&lt;/td&gt;
&lt;td&gt;
Shift + Tab
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;detail&lt;/td&gt;
&lt;td&gt;cursor dwon&lt;/td&gt;
&lt;td&gt;j&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;detail&lt;/td&gt;
&lt;td&gt;cursor up&lt;/td&gt;
&lt;td&gt;k&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;detail&lt;/td&gt;
&lt;td&gt;next page&lt;/td&gt;
&lt;td&gt;
Ctrl or f
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;detail&lt;/td&gt;
&lt;td&gt;previous page&lt;/td&gt;
&lt;td&gt;
Ctrl or b
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;search images&lt;/td&gt;
&lt;td&gt;search image&lt;/td&gt;
&lt;td&gt;Enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;search images&lt;/td&gt;
&lt;td&gt;close panel&lt;/td&gt;
&lt;td&gt;Esc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;search result&lt;/td&gt;
&lt;td&gt;next image&lt;/td&gt;
&lt;td&gt;j&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;search result&lt;/td&gt;
&lt;td&gt;previous image&lt;/td&gt;
&lt;td&gt;k&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;search result&lt;/td&gt;
&lt;td&gt;pull image&lt;/td&gt;
&lt;td&gt;Enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;search result&lt;/td&gt;
&lt;td&gt;close panel&lt;/td&gt;
&lt;td&gt;q&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;create volume&lt;/td&gt;
&lt;td&gt;close panel&lt;/td&gt;
&lt;td&gt;Esc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;create volume&lt;/td&gt;
&lt;td&gt;next input box&lt;/td&gt;
&lt;td&gt;Tab&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;create volume&lt;/td&gt;
&lt;td&gt;previous input box&lt;/td&gt;
&lt;td&gt;
Shift + Tab
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>docker</category>
      <category>bash</category>
      <category>go</category>
      <category>beginners</category>
    </item>
    <item>
      <title>gosh - Run powershell and bash commands easly in go.</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Wed, 05 Jan 2022 10:58:29 +0000</pubDate>
      <link>https://dev.to/abdfnx/gosh-run-powershell-and-bash-commands-easly-in-go-8gp</link>
      <guid>https://dev.to/abdfnx/gosh-run-powershell-and-bash-commands-easly-in-go-8gp</guid>
      <description>&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abdfnx" rel="noopener noreferrer"&gt;
        abdfnx
      &lt;/a&gt; / &lt;a href="https://github.com/abdfnx/gosh" rel="noopener noreferrer"&gt;
        gosh
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      ⌨ A golang library for executing bash &amp;amp; powershell commands easly.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;Run powershell and bash commands easly in go.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Run one command on both shell and powershell
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="s"&gt;"github.com/abdfnx/gosh"&lt;/span&gt;

&lt;span class="c"&gt;// run a command&lt;/span&gt;
&lt;span class="n"&gt;gosh&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"git status"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;// run a command with output&lt;/span&gt;
&lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;errout&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;gosh&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunOut&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"whoami"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;err&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="no"&gt;nil&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"error: %v&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;errout&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h4&gt;
  
  
  How &lt;code&gt;gosh.Run("COMMAND")&lt;/code&gt; works ?
&lt;/h4&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;

&lt;span class="c"&gt;// `Run` executes the same command for shell and powershell&lt;/span&gt;
&lt;span class="k"&gt;func&lt;/span&gt; &lt;span class="n"&gt;Run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cmd&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;errout&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;ShellOutput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;runtime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GOOS&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"windows"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;errout&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;PowershellOutput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;errout&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ShellOutput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;err&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="no"&gt;nil&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"error: %v&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;errout&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Powershell
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="s"&gt;"github.com/abdfnx/gosh"&lt;/span&gt;

&lt;span class="c"&gt;// run a command&lt;/span&gt;
&lt;span class="n"&gt;gosh&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PowershellCommand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;`Write-Host "hello from powershell"`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;// run a script&lt;/span&gt;
&lt;span class="n"&gt;gosh&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PowershellCommand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;`
  $git_username = git config user.name

  Write-Host $git_username
`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;// run a command with output&lt;/span&gt;
&lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;errout&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;gosh&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PowerShelloutput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;`[System.Environment]::SetEnvironmentVariable("Path", $Env:Path + ";$APP_PATH\bin", [System.EnvironmentVariableTarget]::User)`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;err&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="no"&gt;nil&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"error: %v&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;errout&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Bash/Shell
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="s"&gt;"github.com/abdfnx/gosh"&lt;/span&gt;

&lt;span class="c"&gt;// run a command&lt;/span&gt;
&lt;span class="n"&gt;gosh&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ShellCommand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;`echo "shell or bash?"`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;// run a script&lt;/span&gt;
&lt;span class="n"&gt;gosh&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ShellCommand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;`
  mood="👨‍💻"

  if [ $mood != "😪" ]; then
    echo "still coding"
  fi
`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;// run a command with output&lt;/span&gt;
&lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;errout&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;gosh&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Shelloutput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;`curl --silent "https://api.github.com/repos/abdfnx/resto/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/'`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;err&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="no"&gt;nil&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"error: %v&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;errout&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;thank you for your time and don't forgot to star the repo if you like it&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>bash</category>
      <category>go</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Resto - A CLI app can send pretty HTTP &amp; API requests with TUI.</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Sun, 12 Dec 2021 10:00:21 +0000</pubDate>
      <link>https://dev.to/abdfnx/resto-a-cli-app-can-send-pretty-http-api-requests-from-your-terminal-with-gui-1e94</link>
      <guid>https://dev.to/abdfnx/resto-a-cli-app-can-send-pretty-http-api-requests-from-your-terminal-with-gui-1e94</guid>
      <description>&lt;h2&gt;
  
  
  Resto
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abdfnx" rel="noopener noreferrer"&gt;
        abdfnx
      &lt;/a&gt; / &lt;a href="https://github.com/abdfnx/resto" rel="noopener noreferrer"&gt;
        resto
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🔗 Send pretty HTTP &amp;amp; API requests with TUI.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;A CLI app can send pretty HTTP &amp;amp; API requests with TUI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F64256993%2F145669325-d9f122d9-c562-417f-a223-a7f2b1c49adb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F64256993%2F145669325-d9f122d9-c562-417f-a223-a7f2b1c49adb.gif" alt="demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using script
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Shell&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

curl -fsSL https://git.io/resto | bash


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;PowerShell&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

iwr -useb https://git.io/resto-win | iex


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;then restart your powershell&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Go package manager
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

go &lt;span class="nb"&gt;install &lt;/span&gt;github.com/abdfnx/resto@latest


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  GitHub CLI
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

gh extension &lt;span class="nb"&gt;install &lt;/span&gt;abdfnx/gh-resto


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Via Docker
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

docker run &lt;span class="nt"&gt;-it&lt;/span&gt; restohq/resto &amp;lt;CMD&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;full container:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

docker run &lt;span class="nt"&gt;-it&lt;/span&gt; restohq/resto-full


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open Resto UI&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

resto


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Send a request to a URL&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

resto get https://api.github.com


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Send a request to a URL and use resto editor&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

resto post https://localhost:3000/v1/login &lt;span class="nt"&gt;--content-type&lt;/span&gt; json &lt;span class="nt"&gt;--editor&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Read Body from stdin&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;cat &lt;/span&gt;schema.graphql | resto post https://api.spacex.land/graphql &lt;span class="nt"&gt;--content-type&lt;/span&gt; graphql &lt;span class="nt"&gt;--body-stdin&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Use Authentecation with Basic Auth or Bearer Token&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="c"&gt;# Bearer Token&lt;/span&gt;
resto delete https://api.secman.dev/api/logins/13 &lt;span class="nt"&gt;--content-type&lt;/span&gt; json &lt;span class="nt"&gt;--token&lt;/span&gt; TOKEN

&lt;span class="c"&gt;# Basic Auth&lt;/span&gt;
resto delete https://api.secman.dev/api/logins/13 &lt;span class="nt"&gt;--content-type&lt;/span&gt; json &lt;span class="nt"&gt;--username&lt;/span&gt; USERNAME &lt;span class="nt"&gt;--password&lt;/span&gt; PASSWORD


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Save response to a file&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

resto get http://localhost:3333/api/v1/hello &lt;span class="nt"&gt;--save&lt;/span&gt; response.json


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Install binary app from script URL and run it.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

resto &lt;span class="nb"&gt;install &lt;/span&gt;https://yarnpkg.com/install.sh
resto i https://get.docker.com


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Send a request from Restofile&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

resto run

&lt;span class="c"&gt;# from path&lt;/span&gt;
resto run &lt;span class="nt"&gt;--file&lt;/span&gt; ./examples/restofile/basic_request/Restofile


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Get the latest release/tag from repository
```bash
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;resto get-latest abdfnx/resto&lt;/p&gt;

&lt;h1&gt;
  
  
  use another registry
&lt;/h1&gt;

&lt;p&gt;resto get-latest 23028539 --registry gitlab.com&lt;/p&gt;

&lt;h1&gt;
  
  
  with access token
&lt;/h1&gt;

&lt;p&gt;resto get-latest spittet/node-postgresql --registry bitbucket.org --token YOUR-ACCESS-TOKEN&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
### Flags

1. `GET` &amp;amp; `HEAD` flags

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-H, --headers           Just show the response headers&lt;br&gt;
-j, --just-body         Just show the response body&lt;br&gt;
-p, --password string   The password to use for basic authentication&lt;br&gt;
-s, --save string       Save the response body to a file&lt;br&gt;
-t, --token string      The bearer token to use for authentication&lt;br&gt;
-u, --username string   The username to use for basic authentication&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
2. `POST`, `PUT`, `PATCH`, `DELETE` flags

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-b, --body string           The body of the request&lt;br&gt;
-i, --body-stdin            Read the body from stdin&lt;br&gt;
-c, --content-type string   The content type of the body&lt;br&gt;
-e, --editor                Open the editor to edit the body&lt;br&gt;
-H, --headers               Just show the response headers&lt;br&gt;
-j, --just-body             Just show the response body&lt;br&gt;
-p, --password string       The password to use for basic authentication&lt;br&gt;
-s, --save string           Save the response to a file&lt;br&gt;
-t, --token string          The bearer token to use for authentication&lt;br&gt;
-u, --username string       The username to use for basic authentication&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
3. `install` command flags

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-H, --hidden         hide the output&lt;br&gt;
-s, --shell string   shell to use default: bash&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
4. `run` command flags

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-a, --all           Show all response headers &amp;amp; status&lt;br&gt;
-f, --file string   Path to Restofile (Default: PATH/Restofile)&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
5. `get-latest` command flags

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-r, --registry string   The registry to use&lt;br&gt;
-t, --token string      The access token to use it the registry requires authentication&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
### Shortcuts

- &amp;lt;kbd&amp;gt;Ctrl+P&amp;lt;/kbd&amp;gt;: **Open Resto Panel**
- &amp;lt;kbd&amp;gt;Ctrl+H&amp;lt;/kbd&amp;gt;: **Open Help Guide**
- &amp;lt;kbd&amp;gt;Ctrl+S&amp;lt;/kbd&amp;gt;: **Save Request Body**
- &amp;lt;kbd&amp;gt;Ctrl+Q&amp;lt;/kbd&amp;gt;: **Quit**

## Documentation

Refer to our [**Wiki**](https://github.com/abdfnx/resto/wiki) for the documentation.

&amp;gt; thank you for your time and don't forgot to star the repo if you like it

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>beginners</category>
      <category>opensource</category>
      <category>go</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Secman - 👊 Human-friendly and amazing secrets manager.</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Mon, 15 Mar 2021 12:05:57 +0000</pubDate>
      <link>https://dev.to/abdfnx/secman-bja</link>
      <guid>https://dev.to/abdfnx/secman-bja</guid>
      <description>&lt;p&gt;today I'll show you my amazing program...&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/scmn-dev"&gt;
        scmn-dev
      &lt;/a&gt; / &lt;a href="https://github.com/scmn-dev/secman"&gt;
        secman
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      [Archived] 👊 Human-friendly and amazing secrets manager.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h1&gt;
  
  
  Secman CLI
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://secman.dev"&gt;&lt;strong&gt;secman cli&lt;/strong&gt;&lt;/a&gt; is a TUI password manager can store, retrieves, generates, and synchronizes passwords, The most important difference is secman is not GPG cored. Instead, it uses a master password to securely store your passwords. and you can easily manage your passwords from everywhere with &lt;strong&gt;Secman Cloud&lt;/strong&gt; 😉.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k2AfO5U3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets.secman.dev/apps/secman-cli.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k2AfO5U3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets.secman.dev/apps/secman-cli.svg" width="880" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Featuers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Not GPG cored.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It uses a master password to securely store your passwords.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It syncs your passwords.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy to use.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It is written in Go.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You can easily manage your passwords from everywhere, from desktop, web, terminal, and more.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Installation ⬇
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Using script
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Shell
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sL&lt;/span&gt; https://u.secman.dev | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;PowerShell
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;iwr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-useb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://w.secman.dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;then restart your powershell&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Homebrew
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install scmn-dev/tap/secman
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Scoop
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;scoop bucket add secman https://github.com/scmn-dev/scoop
scoop install secman
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;h5&gt;
  
  
  to learn about secman types, check out the &lt;a href="https://secman.dev/docs/password-types"&gt;secman types&lt;/a&gt; page.
&lt;/h5&gt;

&lt;h3&gt;
  
  
  Initialize &lt;code&gt;~/.secman&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;secman init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flags&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;no flags&lt;/p&gt;

&lt;h3&gt;
  
  
  Manage secman's authentication state.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;secman auth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Other Commands&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;create     Create a new secman account.
login      Authenticate with secman.
logout     Logout of the current user account.
refresh    Refresh the current user account.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flags&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;no flags&lt;/p&gt;

&lt;h3&gt;
  
  
  Insert a New Password
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;secman insert --[PASSWORD_TYPE]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flags&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-c, --credit-cards   Insert a credit card to your vault.
-e, --emails         Insert a email to your vault.
-l, --logins         Insert a login password to your vault.
-n, --notes          Insert a note to your vault.
-s, --servers        Insert a server to your vault.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  List all your passwords
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;secman .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flags&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;no flags&lt;/p&gt;

&lt;h3&gt;
  
  
  Read a password
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;secman read --[PASSWORD_TYPE] &amp;lt;PASSWORD_NAME&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flags&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-c, --credit-cards   Read password from credit cards type.
-e, --emails         Read password from emails type.
-j, --json           Print password in JSON view.
-l, --logins         Read password from logins type.
-n, --notes          Read password from notes type.
-s, --servers        Read password from servers type.
-p, --show-hidden    Show hidden values.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Update/Edit a password value
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;secman edit --[PASSWORD_TYPE] &amp;lt;PASSWORD_NAME&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flags&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-c, --credit-cards   Edit password from credit cards type.
-e, --emails         Edit password from emails type.
-l, --logins         Edit password from logins type.
-n, --notes          Edit password from notes type.
-s, --servers        Edit password from servers type.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Delete a password
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;secman delete --[PASSWORD_TYPE] &amp;lt;PASSWORD_NAME&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flags&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-c, --credit-cards   Delete password from credit cards type.
-e, --emails         Delete password from emails type.
-l, --logins         Delete password from logins type.
-n, --notes          Delete password from notes type.
-s, --servers        Delete password from servers type.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Generate a password
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;secman generate --length 20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flags&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-l, --length int   Set the length of the password. (default 10)
-r, --raw          Generate a password and print it.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;to learn more about secman commands run &lt;code&gt;secman help&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Some Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://secman.dev"&gt;&lt;strong&gt;secman website&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://secman.dev/docs"&gt;&lt;strong&gt;docs&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://secman.dev/changelog"&gt;&lt;strong&gt;changelog&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://secman.dev/privacy"&gt;&lt;strong&gt;privacy policy of secman&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Other Secman Products
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/scmn-dev/desktop"&gt;&lt;strong&gt;Secman Desktop&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://secman.dev/extension"&gt;&lt;strong&gt;Secman Extension&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;Thanks for your interest in contributing to &lt;code&gt;secman&lt;/code&gt;. You can start a development environment with &lt;a href="https://www.gitpod.io"&gt;gitpod&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gitpod.io/#https://github.com/scmn-dev/secman"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ucaV8MME--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://gitpod.io/button/open-in-gitpod.svg" alt="open in gitpod" width="138" height="32"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Special thanks ❤
&lt;/h2&gt;

&lt;p&gt;thanks to &lt;a href="https://github.com/charmbracelet"&gt;&lt;strong&gt;@charmbracelet&lt;/strong&gt;&lt;/a&gt; for thier awesome TUI libraries 🏗.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://secman.dev"&gt;secman&lt;/a&gt; is licensed under the terms of &lt;a href="https://github.com/scmn-dev/secman/blob/main/LICENSE"&gt;MIT&lt;/a&gt; License&lt;/p&gt;

</description>
      <category>go</category>
      <category>security</category>
      <category>beginners</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Create a .msi file for go program</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Fri, 29 Jan 2021 06:30:17 +0000</pubDate>
      <link>https://dev.to/abdfnx/how-to-create-a-msi-file-for-go-program-je</link>
      <guid>https://dev.to/abdfnx/how-to-create-a-msi-file-for-go-program-je</guid>
      <description>&lt;p&gt;Hi everyone, long time no write anything, but I had a lot of projects and stresses to study, but now, we'll create a .msi file for go program&lt;/p&gt;

&lt;h2&gt;
  
  
  Pre-requisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://golang.org"&gt;go&lt;/a&gt; is installed&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://wixtoolset.org/"&gt;wixtoolset&lt;/a&gt; it's very important&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's we'll use?
&lt;/h2&gt;

&lt;p&gt;Package &lt;a href="https://github.com/mh-cbon/go-msi"&gt;go-msi&lt;/a&gt; helps to generate MSI package for a Go project.&lt;/p&gt;

&lt;h3&gt;
  
  
  installation
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;by &lt;a href="https://golang.org"&gt;go&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go get github.com/mh-cbon/go-msi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;by &lt;a href="https://chocolatey.org"&gt;Chocolatey&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;choco install go-msi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for more, visit &lt;a href="https://mh-cbon.github.io/go-msi/#install"&gt;https://mh-cbon.github.io/go-msi/#install&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ok, now let's create a simple go file &lt;code&gt;msi.go&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;&lt;span class="k"&gt;package&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="s"&gt;"fmt"&lt;/span&gt;

&lt;span class="k"&gt;func&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Gen MSI File"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;build it&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;wix.json&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;to create a .msi file, we need &lt;code&gt;wix.json&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"product"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_PRODUCT_NAME"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"company"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_COMPANY_NAME"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"license"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"LICENSE"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"upgrade-code"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"files"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"guid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"items"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"path/to/msi.exe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"guid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"vars"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"PATH"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"value"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"[INSTALLDIR]"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"permanent"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"no"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"system"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"no"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"set"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"part"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"last"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"shortcuts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"choco"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_DESC"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"project-url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_PROJECT_URL"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tags"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"TAGS YOU NEED"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"license-url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"YOUR_LICENSE_URL"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;our &lt;code&gt;guid&lt;/code&gt; props are empty, run this command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go-msi set-guid
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create Interfaces
&lt;/h3&gt;

&lt;p&gt;we'll create three user interfaces&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;License Agreement Page&lt;/li&gt;
&lt;li&gt;WiX UI&lt;/li&gt;
&lt;li&gt;Product Page&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;now create three files&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;LicenseAgreementDlg_HK.wsx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;product.wsx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WixUI_HK.wsx&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;download these files &lt;a href="https://github.com/abdfnx/wix_temp/archive/main.zip"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;put these files in folder, like &lt;strong&gt;templates&lt;/strong&gt; folder&lt;/p&gt;

&lt;h3&gt;
  
  
  Generate
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;go-msi make &lt;span class="nt"&gt;--msi&lt;/span&gt; YOUR_PRODUCT_NAME.msi &lt;span class="nt"&gt;--version&lt;/span&gt; YOUR_VERSION &lt;span class="nt"&gt;-s&lt;/span&gt; ./path/to/&lt;span class="k"&gt;*&lt;/span&gt;.wsx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;now you can test your msi file&lt;/p&gt;

&lt;p&gt;👋&lt;/p&gt;

</description>
      <category>windows</category>
      <category>go</category>
      <category>bash</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to write a great README for your GitHub project in 5 steps</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Sun, 03 Jan 2021 06:46:54 +0000</pubDate>
      <link>https://dev.to/abdfnx/how-to-write-a-great-readme-for-your-github-project-in-5-steps-33e5</link>
      <guid>https://dev.to/abdfnx/how-to-write-a-great-readme-for-your-github-project-in-5-steps-33e5</guid>
      <description>&lt;p&gt;A great README file helps your project to stand out from the sea of open-source software on &lt;a href="https://github.com"&gt;GitHub&lt;/a&gt;. In this article, I go over the key elements every README for an open-source project should contain. It also includes a README.md template for use in your own projects.&lt;/p&gt;

&lt;p&gt;In my books, every README should cover at least the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What your project does&lt;/li&gt;
&lt;li&gt;How to install it&lt;/li&gt;
&lt;li&gt;Example usage&lt;/li&gt;
&lt;li&gt;Changelog&lt;/li&gt;
&lt;li&gt;License and author info&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  1. What your project does
&lt;/h1&gt;

&lt;p&gt;Potential users of your project should be able to figure out quickly &lt;strong&gt;what the purpose of the project is&lt;/strong&gt;. Make sure to get this information across early on! A good way to do this right is by providing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;a concise, single-paragraph blurb describing your project; and&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;a representative screenshot (or even better, an animated GIF) that shows your project in action.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  2. How to install it
&lt;/h1&gt;

&lt;p&gt;If people like your project they’ll want to &lt;strong&gt;learn how they can use it&lt;/strong&gt;. Although it may seem straightforward to you how to install your library or tool, it will trip people over and frustrate them if you don’t provide &lt;strong&gt;installation instructions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It sends potential users running if there are no instructions at all or if they are overly complicated. Make this step as simple as possible. A good way to provide install instructions is by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;having a code block in your README that shows &lt;strong&gt;exactly what folks need to type into their shell&lt;/strong&gt; to install your software; and&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;doing this for all platforms that your software supports if there’s a difference between them (e.g. OS X/Linux/Windows).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  3. Example usage
&lt;/h1&gt;

&lt;p&gt;Besides, install instructions having a good usage section is essential, too. Otherwise, how are people going to figure out how they can get to the good stuff after they’ve made it through the install process?&lt;/p&gt;

&lt;p&gt;I like doing this by putting up another code block with a &lt;em&gt;&lt;strong&gt;few useful and motivating examples&lt;/strong&gt;&lt;/em&gt;. Again you’d lay out exactly what people need to type into their shell or click in the UI to get the examples working.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Change log
&lt;/h1&gt;

&lt;p&gt;Users of your project want to know what changes were made compared to the last version. I know that GitHub has the “Releases” tool for this but I still like having a condensed change log in the README.&lt;/p&gt;

&lt;p&gt;Another positive side effect of putting the change log into the README is that it becomes easy to also share the change log on package repositories like npm, or PyPI.&lt;/p&gt;

&lt;p&gt;I usually just make a bullet list with a bullet for each release and the key changes made in that release.&lt;/p&gt;

&lt;p&gt;What I like about this approach is that you can give credit to other contributors publicly. The README is likely the first thing that new users see and it’s nice to give contributors on the project a shoutout there. They helped make your project more awesome, so share credit where credit is due.&lt;/p&gt;

&lt;h1&gt;
  
  
  5. License and author info
&lt;/h1&gt;

&lt;p&gt;Providing licensing and contact information is important to clarify the legal status of your project. GitHub recommends that you include a LICENSE.txt in your repository’s root directory. Although this convention exists, it’s a good idea to include a brief section in the README with:&lt;/p&gt;

&lt;p&gt;contact information for the author and&lt;br&gt;
a quick statement about the license the software is under. I usually do this by saying “XYZ is available under the MIT, GNU license. See LICENSE.txt for more information”. If you’re extra nice you can put a link to the license file.&lt;/p&gt;

</description>
      <category>github</category>
      <category>markdown</category>
      <category>programming</category>
      <category>design</category>
    </item>
    <item>
      <title>Open VS Code on the Browser</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Sun, 27 Dec 2020 14:50:29 +0000</pubDate>
      <link>https://dev.to/abdfnx/open-vs-code-on-the-browser-3615</link>
      <guid>https://dev.to/abdfnx/open-vs-code-on-the-browser-3615</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Hey, what up... in this post, we're going to open our &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;vscode editor&lt;/a&gt; in the browser, and we'll do it by &lt;a href="https://github.com/cdr/code-server" rel="noopener noreferrer"&gt;code-server&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  What's &lt;a href="https://github.com/cdr/code-server" rel="noopener noreferrer"&gt;code-server&lt;/a&gt; 🤨 ?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/cdr/code-server" rel="noopener noreferrer"&gt;code-server&lt;/a&gt; is a service from &lt;a href="https://coder.com" rel="noopener noreferrer"&gt;coder&lt;/a&gt;, their vision is &lt;code&gt;Run VS Code on any machine anywhere and access it in the browser.&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup code-server
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/coder" rel="noopener noreferrer"&gt;
        coder
      &lt;/a&gt; / &lt;a href="https://github.com/coder/code-server" rel="noopener noreferrer"&gt;
        code-server
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      VS Code in the browser
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;code-server&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/coder/code-server/discussions" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/30f4d3a87c758daa0e009abaca1225e6de0d02ff0d26658c88a064568ecc396d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2532304769744875622d25323044697363757373696f6e732d677261792e7376673f6c6f6e6743616368653d74727565266c6f676f3d67697468756226636f6c6f72423d707572706c65" alt='"GitHub Discussions"'&gt;&lt;/a&gt; &lt;a href="https://coder.com/community" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7204a179a57e7ce4cec9620c9060a9f0c24069aaa3676c070adc2c577c8c652a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6a6f696e2d75732532306f6e253230736c61636b2d677261792e7376673f6c6f6e6743616368653d74727565266c6f676f3d736c61636b26636f6c6f72423d627269676874677265656e" alt='"Join us on Slack"'&gt;&lt;/a&gt; &lt;a href="https://twitter.com/coderhq" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/04ffc6959b39b7b2356210093bd2498d5a822be4858a596148e9e98f1a5699dd/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f436f64657248513f6c6162656c3d253430436f6465724851267374796c653d736f6369616c" alt="Twitter Follow"&gt;&lt;/a&gt; &lt;a href="https://codecov.io/gh/coder/code-server" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/09333db35ab0ce0d517af626d4558da7fce015b201263d9a25bddf52b346f56e/68747470733a2f2f636f6465636f762e696f2f67682f636f6465722f636f64652d7365727665722f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d35694d396661726a6e43" alt="codecov"&gt;&lt;/a&gt; &lt;a href="https://coder.com/docs/code-server/latest" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d3f2deb23c5ced4be5dae69238c01441001db17ac63f535c9f4fc2832c5b5450/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d446f6373266d6573736167653d7365652532306c617465737426636f6c6f723d626c7565" alt="See latest"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run &lt;a href="https://github.com/Microsoft/vscode" rel="noopener noreferrer"&gt;VS Code&lt;/a&gt; on any machine anywhere and
access it in the browser.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/coder/code-server./assets/screenshot-1.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fcoder%2Fcode-server.%2Fassets%2Fscreenshot-1.png" alt="Screenshot"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/coder/code-server./assets/screenshot-2.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fcoder%2Fcode-server.%2Fassets%2Fscreenshot-2.png" alt="Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Highlights&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Code on any device with a consistent development environment&lt;/li&gt;
&lt;li&gt;Use cloud servers to speed up tests, compilations, downloads, and more&lt;/li&gt;
&lt;li&gt;Preserve battery life when you're on the go; all intensive tasks run on your
server&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Requirements&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;See &lt;a href="https://coder.com/docs/code-server/latest/requirements" rel="nofollow noopener noreferrer"&gt;requirements&lt;/a&gt; for minimum specs, as well as instructions
on how to set up a Google VM on which you can install code-server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Linux machine with WebSockets enabled, 1 GB RAM, and 2 vCPUs&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Getting started&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;There are four ways to get started:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Using the &lt;a href="https://github.com/coder/code-server/blob/main/install.sh" rel="noopener noreferrer"&gt;install
script&lt;/a&gt;, which
automates most of the process. The script uses the system package manager if
possible.&lt;/li&gt;
&lt;li&gt;Manually &lt;a href="https://coder.com/docs/code-server/latest/install" rel="nofollow noopener noreferrer"&gt;installing
code-server&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Deploy code-server to your team with &lt;a href="https://cdr.co/coder-github" rel="nofollow noopener noreferrer"&gt;coder/coder&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Using our one-click buttons and guides to &lt;a href="https://github.com/coder/deploy-code-server" rel="noopener noreferrer"&gt;deploy code-server to a cloud
provider&lt;/a&gt; ⚡&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you use the install script, you can preview what occurs…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/coder/code-server" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;open the terminal and type&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="nv"&gt;$ &lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://code-server.dev/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;after install it, let's active it&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="nv"&gt;$ &lt;/span&gt;code-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Test it in the browser
&lt;/h3&gt;

&lt;p&gt;in your browser, open &lt;code&gt;localhost:8080&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;it's well asking the password, your password in &lt;code&gt;~/.config/code-server/config.yaml&lt;/code&gt;&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="nv"&gt;$ &lt;/span&gt;nano ~/.config/code-server/config.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bind-addr: 127.0.0.1:8080
auth: password
password: YOUR_PASSWORD
cert: &lt;span class="nb"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and you'll see your password, copy it, and paste it in the field...&lt;/p&gt;

&lt;p&gt;you should have like this&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6aovbnuqy0w5sqc261o3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6aovbnuqy0w5sqc261o3.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>beginners</category>
      <category>cloud</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Oh My Zsh + PowerLevel10k = 😎 terminal</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Wed, 23 Dec 2020 13:40:29 +0000</pubDate>
      <link>https://dev.to/abdfnx/oh-my-zsh-powerlevel10k-cool-terminal-1no0</link>
      <guid>https://dev.to/abdfnx/oh-my-zsh-powerlevel10k-cool-terminal-1no0</guid>
      <description>&lt;p&gt;Hi there, The developers always use the terminal, but it is boring and has no colors or shapes.&lt;br&gt;
Today we will transform our terminals into a wonderful, colorful, supportive terminal that offers suggestions and has a memory, we'll do it by &lt;a href="https://ohmyz.sh" rel="noopener noreferrer"&gt;OMZ&lt;/a&gt; and design it by &lt;a href="https://github.com/romkatv/powerlevel10k" rel="noopener noreferrer"&gt;PowerLevel10k&lt;/a&gt;...&lt;/p&gt;

&lt;h2&gt;
  
  
  Pre-requisites
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;if you're using &lt;a href="https://www.microsoft.com/en-us/windows" rel="noopener noreferrer"&gt;Windows&lt;/a&gt;, you can install and configure &lt;a href="https://docs.microsoft.com/en-us/windows/wsl/" rel="noopener noreferrer"&gt;WSL&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and I recommended to use &lt;a href="https://ubuntu.com/" rel="noopener noreferrer"&gt;Ubuntu&lt;/a&gt; or &lt;a href="https://www.debian.org/" rel="noopener noreferrer"&gt;Debian&lt;/a&gt; wsl plugin&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup &lt;a href="https://www.zsh.org/" rel="noopener noreferrer"&gt;zsh&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;in the command line type&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;# homebrew&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;zsh

&lt;span class="c"&gt;# apt-get&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;zsh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;type &lt;strong&gt;zsh&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

zsh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;blockquote&gt;
&lt;h3&gt;
  
  
  Install &lt;a href="https://ohmyz.sh" rel="noopener noreferrer"&gt;Oh My Zsh&lt;/a&gt;
&lt;/h3&gt;
&lt;/blockquote&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

sh &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://github.com/romkatv/powerlevel10k" rel="noopener noreferrer"&gt;PowerLevel10k&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Install Powerlevel10k using the following command&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="c"&gt;# gh cli&lt;/span&gt;
gh repo clone romkatv/powerlevel10k &lt;span class="nv"&gt;$ZSH_CUSTOM&lt;/span&gt;/themes/powerlevel10k

&lt;span class="c"&gt;# git&lt;/span&gt;
git clone https://github.com/romkatv/powerlevel10k.git &lt;span class="nv"&gt;$ZSH_CUSTOM&lt;/span&gt;/themes/powerlevel10k


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Then you need to enable it, change the value of ZSH_THEME to following in &lt;code&gt;~/.zshrc&lt;/code&gt; file :&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nv"&gt;ZSH_THEME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"powerlevel10k/powerlevel10k"&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;blockquote&gt;
&lt;h3&gt;
  
  
  Configure Powerlevel10k Theme
&lt;/h3&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Make sure your terminal font is &lt;code&gt;FiraCode NF&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;font link: &lt;a href="https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/FiraCode/Medium/complete/Fira%20Code%20Medium%20Nerd%20Font%20Complete.ttf" rel="noopener noreferrer"&gt;url&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;for windows users: &lt;a href="https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/FiraCode/Medium/complete/Fira%20Code%20Medium%20Nerd%20Font%20Complete%20Windows%20Compatible.ttf" rel="noopener noreferrer"&gt;url&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvb56rxkxktyjaocbrh6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvb56rxkxktyjaocbrh6s.png" alt="Alt Text" width="800" height="307"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Cheat-sheet for Windows
&lt;/h4&gt;

&lt;p&gt;if you've &lt;code&gt;Windows terminal&lt;/code&gt; you can open your settings and  in &lt;strong&gt;UNIX&lt;/strong&gt; preferences and add &lt;code&gt;fontFace&lt;/code&gt; prop,&lt;br&gt;
assign it to &lt;code&gt;FiraCode NF&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"guid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{YOUR_UNIX_GUID}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"hidden"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ubuntu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"source"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Windows.Terminal.Wsl"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"fontFace"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"FiraCode NF"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"snapOnInput"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"useAcrylic"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Windows Terminal url in Microsoft Store: &lt;a href="https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk701" rel="noopener noreferrer"&gt;url&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Windows Terminal repo: &lt;a href="https://github.com/microsoft/terminal" rel="noopener noreferrer"&gt;url&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;p10k configure&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;type &lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

p10k configure


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxf9fk2sgux1niog4vhpy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxf9fk2sgux1niog4vhpy.gif" alt="x" width="800" height="689"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;you can choose your style...&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  Plugins (Optional, Good to have!)
&lt;/h2&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  Clone plugins
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;zsh-syntax-highlighting - It enables highlighting of commands whilst they are typed at a zsh prompt into an interactive terminal. This helps in reviewing commands before running them, particularly in catching syntax errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="c"&gt;# gh cli&lt;/span&gt;
gh repo clone zsh-users/zsh-syntax-highlighting &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/plugins/zsh-syntax-highlighting

&lt;span class="c"&gt;# git&lt;/span&gt;
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/plugins/zsh-syntax-highlighting


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;zsh-autosuggestions - It suggests commands as you type based on history and completions.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="c"&gt;# gh cli&lt;/span&gt;
gh repo clone zsh-users/zsh-autosuggestions &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/plugins/zsh-autosuggestions

&lt;span class="c"&gt;# git&lt;/span&gt;
git clone https://github.com/zsh-users/zsh-autosuggestions &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/plugins/zsh-autosuggestions


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;ls&lt;/strong&gt; tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/athityakumar/colorls" rel="noopener noreferrer"&gt;colorls&lt;/a&gt;: A Ruby script that colorizes the &lt;code&gt;ls&lt;/code&gt; output with color and icons&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://the.exa.website" rel="noopener noreferrer"&gt;exa&lt;/a&gt;: is a modern replacement for &lt;em&gt;ls&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  colorls
&lt;/h4&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;sudo &lt;/span&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;colorls


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h4&gt;
  
  
  warn 🙃
&lt;/h4&gt;
&lt;h4&gt;
  
  
  maybe you'll get some &lt;code&gt;gem&lt;/code&gt; errors, you should fix it
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Linux&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;ruby-full


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h4&gt;
  
  
  exa
&lt;/h4&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

brew &lt;span class="nb"&gt;install &lt;/span&gt;exa


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  secrets manager
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/scmn-dev/secman" rel="noopener noreferrer"&gt;secman&lt;/a&gt;: Human-friendly and amazing secrets manager.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="c"&gt;# via npm&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; secman

&lt;span class="c"&gt;# via script&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://cli.secman.dev | bash


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  file transfer app
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/abdfnx/tran" rel="noopener noreferrer"&gt;tran&lt;/a&gt;: Securely transfer and send anything between computers with TUI.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

curl &lt;span class="nt"&gt;-sL&lt;/span&gt; https://cutt.ly/tran-cli | bash


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h4&gt;
  
  
  special thanks
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;special thanks to &lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__164417"&gt;
    &lt;a href="/ombratteng" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F164417%2F17148c5a-5c8b-4cb2-a650-d27e81c58cd9.png" alt="ombratteng image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/ombratteng"&gt;Ole-Martin Bratteng&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/ombratteng"&gt;&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;to showing me &lt;strong&gt;exa&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Activate the plugins
&lt;/h4&gt;


&lt;/blockquote&gt;

&lt;p&gt;In &lt;code&gt;~/.zshrc&lt;/code&gt; file replace the line starting with &lt;code&gt;plugins=()&lt;/code&gt; to below line.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nv"&gt;plugins&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt; git zsh-syntax-highlighting zsh-autosuggestions &lt;span class="o"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;colorls&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-x&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;command&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; colorls&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;alias ls&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"colorls"&lt;/span&gt;
    &lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;la&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"colorls -al"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;or exa&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-x&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;command&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; exa&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;alias ls&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"exa"&lt;/span&gt;
    &lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;la&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"exa --long --all --group"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Some more official plugins - &lt;a href="https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins" rel="noopener noreferrer"&gt;ohmyzsh plugins&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;after all these steps type&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;p&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.zshrc&lt;/p&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Finally it should be like this 👇&lt;br&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Mac&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7yxpyhy9lj36ks178ywt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7yxpyhy9lj36ks178ywt.png" alt="Alt Text" width="800" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Windows(WSL) or Linux&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsuf79s6ur03owctdq0l4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsuf79s6ur03owctdq0l4.png" alt="Alt Text" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fgppctwt70q58skp24vmz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fgppctwt70q58skp24vmz.png" alt="Alt Text" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it, see you next time 👋&lt;/p&gt;

</description>
      <category>bash</category>
      <category>linux</category>
      <category>ux</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Download YouTube videos By Python in 5 lines !!!</title>
      <dc:creator>abdfn</dc:creator>
      <pubDate>Sat, 12 Dec 2020 10:29:45 +0000</pubDate>
      <link>https://dev.to/abdfnx/download-youtube-videos-by-python-in-5-lines-17cb</link>
      <guid>https://dev.to/abdfnx/download-youtube-videos-by-python-in-5-lines-17cb</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Howdy, today we'll create a program by &lt;a href="https://python.org" rel="noopener noreferrer"&gt;python&lt;/a&gt; in &lt;strong&gt;5 line&lt;/strong&gt; can download YouTube videos, so let's get started.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Pre-requisites
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;you'll need :&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://python.org" rel="noopener noreferrer"&gt;python&lt;/a&gt; is installed, if you don't install it visit this link &lt;a href="https://www.python.org/downloads/" rel="noopener noreferrer"&gt;https://www.python.org/downloads/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Let's Begin
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;We'll create two files, &lt;code&gt;video.py&lt;/code&gt; &amp;amp; &lt;code&gt;audio.py&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;video.py&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This file will download your video with pictures &amp;amp; audio&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;audio.py&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;And This'll download the video only with audio.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Open your favorite editor, and type&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;video.py audio.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;We're going to install two packages&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pafy&lt;/code&gt; &amp;amp; &lt;code&gt;youtube.dl&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;so in terminal&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="nv"&gt;$ &lt;/span&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;pafy youtube.dl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Little remains, in &lt;code&gt;video.py&lt;/code&gt; we'll import &lt;code&gt;pafy&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pafy&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;new&lt;/code&gt; is a function download your video by add the URL on it, so create &lt;code&gt;url&lt;/code&gt; variable and it's well be input&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enter the url: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;now create &lt;code&gt;video&lt;/code&gt; variable and it's value is &lt;code&gt;new&lt;/code&gt; function&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;video&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;the video has different quality, we want the best quality, define new variable&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;dl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getbest&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;dl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;download&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;you can test it&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="nv"&gt;$ &lt;/span&gt;py video.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;now, go to &lt;code&gt;audio.py&lt;/code&gt;, it's like &lt;code&gt;video.py&lt;/code&gt; but has some differences&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pafy&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt;
&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enter the link: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;video&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;let's define &lt;code&gt;audio&lt;/code&gt; variable&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;audio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;audiostreams&lt;/span&gt;
&lt;span class="n"&gt;audio&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;download&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;that's it, you can now go to YouTube and download your favorite video/s.&lt;/p&gt;

&lt;p&gt;good bye.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abdfnx-cemetery" rel="noopener noreferrer"&gt;
        abdfnx-cemetery
      &lt;/a&gt; / &lt;a href="https://github.com/abdfnx-cemetery/klihub" rel="noopener noreferrer"&gt;
        klihub
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      KliHub is program you can by it download youtube vidoes
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>python</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
