Clone the repository
git clone https://github.com/NorfairKing/intray.git --recursive
To install only the command-line application intray
:
nix-env --install --file nix/pkgs.nix --attr intrayPackages.intray-cli
To also install the other intray applications like the server and web server:
nix-env --install --file nix/pkgs.nix --attr intrayPackages
Follow the instructions at https://docs.haskellstack.org/en/stable/README/
to install stack
.
For example:
curl -sSL https://get.haskellstack.org/ | sh
Then install autoexporter
:
stack install autoexporter
Finally, install the intray cli:
stack install :intray
To also install the other intray applications like the server and web server:
stack install
If you see an error like this during cloning:
Permission Denied (publickey)
You probably used ssh-based cloning instead of https-based cloning. Make sure to use the clone command as shown.
If you see an error like this during building with stack:
intray-data > ghc: could not execute: autoexporter
You forgot to run stack install autoexporter
.
If you see an error like this during building with stacK:
Aeson exception:
Error in $.packages[10].completed: failed to parse field 'packages': failed to parse field 'completed': [...]
You probably cloned an old version and git pull
-ed recently.
You still need to remove stack.yaml.lock
.
You will only need to do this once.
The intray
cli application looks for config files in these locations by default, in order:
- $XDG_CONFIG_HOME/intray/config.yaml
- $HOME/.config/intray/config.yaml
- $HOME/.intray/config.yaml
Run intray --help
to see how intray can be configured.
Put this in your config file:
url: 'https://api.intray.eu'
username: 'YOUR USERNAME HERE'
Then register:
intray register
and login:
intray login
Now you can sync manually:
intray sync
Note that syncing will occur automatically any time you change anything locally. If you would prefer to schedule syncing manually to decrease latency locally, you can use a different syncing strategy:
sync: NeverSync
Within your home.nix
, add the intray module from this repository:
{ pkgs, lib, ... }:
with lib;
let
intrayModule = (builtins.fetchGit {
url = "https://github.com/NorfairKing/intray";
ref = "master";
rev = "0000000000000000000000000000000000000000"; # Add a recent version here.
} + "/nix/program.nix");
in
{
imports = [
intrayModule
# [...]
];
intray = {
enable = true;
sync = {
enable = true;
username = "YOUR_USERNAME_HERE";
password = "YOUR_PASSWORD_HERE;
};
};
}
Note that we have to use builtins.fetchGit
and cannot use fetchFromGitHub
because this needs to be fetched at evaluation time.