Learning Java/JavaEE

Blog about my Java/JavaEE experiences


🐚 Install all your Atom packages πŸ“¦ from a file

atom

Every time I have to set up a new computer, I have to remember the Atom packages that I was using before and start installing them one by one.

Recently, I discovered that Atom comes with the Atom Package Manager or apm that allows you to install Atom Packages from the terminal:

$ apm install asciidoc-preview

But the same tool also allows us to list the currently installed packages:

$ apm list
Built-in Atom Packages (93)
β”œβ”€β”€ atom-dark-syntax@0.29.1
β”œβ”€β”€ atom-dark-ui@0.53.3
β”œβ”€β”€ atom-light-syntax@0.29.1
β”œβ”€β”€ atom-light-ui@0.46.3
β”œβ”€β”€ base16-tomorrow-dark-theme@1.6.0
β”œβ”€β”€ base16-tomorrow-light-theme@1.6.0
β”œβ”€β”€ one-dark-ui@1.12.5
.
.
.
β”œβ”€β”€ language-xml@0.35.3
└── language-yaml@0.32.0

Community Packages (10) ~/.atom/packages
β”œβ”€β”€ asciidoc-assistant@0.2.3
β”œβ”€β”€ asciidoc-image-helper@1.0.1
β”œβ”€β”€ asciidoc-preview@2.13.1
β”œβ”€β”€ atom-beautify@0.33.4
β”œβ”€β”€ atom-runner@2.7.1
β”œβ”€β”€ autocomplete-asciidoc@0.1.2
β”œβ”€β”€ intellij-idea-keymap@0.2.3
β”œβ”€β”€ jekyll@2.1.0
β”œβ”€β”€ language-asciidoc@1.11.0
└── platformio-ide-terminal@2.10.0

The output is vast since it includes all the built-in packages plus the installed ones. Let’s filter only the installed:

$ apm list --installed
Community Packages (10) ~/.atom/packages
β”œβ”€β”€ asciidoc-assistant@0.2.3
β”œβ”€β”€ asciidoc-image-helper@1.0.1
β”œβ”€β”€ asciidoc-preview@2.13.1
β”œβ”€β”€ atom-beautify@0.33.4
β”œβ”€β”€ atom-runner@2.7.1
β”œβ”€β”€ autocomplete-asciidoc@0.1.2
β”œβ”€β”€ intellij-idea-keymap@0.2.3
β”œβ”€β”€ jekyll@2.1.0
β”œβ”€β”€ language-asciidoc@1.11.0
└── platformio-ide-terminal@2.10.0

A lot better, but we will also need to remove the noise from the output:

$ apm list --installed --bare
asciidoc-assistant@0.2.3
asciidoc-image-helper@1.0.1
asciidoc-preview@2.13.1
atom-beautify@0.33.4
atom-runner@2.7.1
autocomplete-asciidoc@0.1.2
intellij-idea-keymap@0.2.3
jekyll@2.1.0
language-asciidoc@1.11.0
platformio-ide-terminal@2.10.0

If we want to remove the specific versions to tell apm that we want the latest versions instead, we can filter the output with grep:

$ apm list --installed --bare | grep '^[^@]\+' -o
asciidoc-assistant
asciidoc-image-helper
asciidoc-preview
atom-beautify
atom-runner
autocomplete-asciidoc
intellij-idea-keymap
jekyll
language-asciidoc
platformio-ide-terminal

Now that we have a clean list of our installed packages, we can store it in a text file:

$ apm list --installed --bare | grep '^[^@]\+' -o > atom-packages.txt

We can store this file in dotfiles, Github, Gists, Gitlab, Dropbox, or even email and then run the following command to install all the packages i.e., for new installations:

$ apm install --packages-file atom-packages.txt