What is the "right" way of using Atom storage?


#1

In the Atom folder (.atom) there is a folder called storage that seems intended to use as storage for the Atom plugins. However I can’t find any information about the usage. Is there any standard way of storing information here?


#2

maybe this ?
https://atom.io/docs/latest/behind-atom-serialization-in-atom


#3

@jeancroy: Maybe this is a x-y problem. What I want is to have a folder to save non-serializable data (like executables). Maybe I’m searching in the wrong direction.


#4

You need to go a little further in clearing up the x-y. What kind of executables are you talking about? Are they specific to Atom or just general project files. If they are for an Atom package they should obviously be in the Atom package folder. If they are not related to Atom they can be anywhere not in .atom.


#5

I’d take a look at autocomplete and litter package, they often use a helper executable to parse the files. On the top of my head, python and go does it.


#6

@mark_hahn: These files are for the package (executable helpers, python scripts and package data).


#7

Then they should be stored in the package. Aren’t they in your git repo? Normally everything needed to run is in the repo and just stays there after installation.


#8

@mark_hahn: I can’t write to an asar archive. This package would be installed along with the defaults. I’m doing a package to preinstall in many machines.

Sorry. I needed to wait one hour because this systems tries to irk the new users. :slightly_smiling:


#9

You use words that I don’t understand in the Atom context. What are the defaults you are talking about? What is a pre-install? How would a user install your software?

Anything other than publishing a package to install software is highly discouraged. Are you aware that a package can do anything, even including modifying the core software? Also packages can be designed to start when Atom starts.


#10

@mark_hahn: I meant to download the Atom source code, then edit package.json to include my package on it, build Atom, generate a installer, and then install in many machines. Any user could install my software later from APM.

The base packages that install on Atom at build time, are joined in app.asar, then the package folder seems to be read-only, thus I can’t write to it.


#11

Base packages, also known as core packages, are ordinary packages. There is no difference between them being included in the asar and being published on atom.io like all the other packages. Just publish your package like everyone else.

If you want install an Atom package in a lot of PCs, then make a script to do apm install your-package-name and run that at the end of the normal install. The main reason to do this is keep the versions of everything correct. You should not screw around with the asar bundle.


#12

@mark_hahn: Then my problem is a x-y-z one. These machines don’t have Internet access.


#13

You can still use a standard install package and your custom script on the internal network.


#14

@mark_hahn: Ok, it will the best solution. Thank you!