superls

CI

A multi volumes files indexer and search engine CLI (elixir, Linux).

Indexing

superls analyzes the filenames of a volume, extracts the filename tags and other file attributes such as size, date and builds an index for the volume.

Unless a store name is given (-s), all volume indexes are stored in the default store folder.

Stores are saved compressed and optionally password encrypted.

The following command creates an index of /path/to/my/files in the default store :

superls archive /path/to/my/files

or on store mystore with stdin password encryption :

superls archive /path/to/my/files -s mystore -p

Search

The command to search tags in the default store with the CLI is :

superls search

An interactive shell asks for commands like query by a list of tags, a string separated by space. A tag can be incomplete.<br> The result is a list of matched files.

Other CLI commands

For help, getting stores commands ... :

superls

What is parsed ?

superls tokenizes the filenames with the following delimiters :

  ",",  "_",  "-",  ".",  "*",  "/",
  "(",  ")",  ":",  "|",  "\"",  "[",  "]",
  "{",  "}",  "\t",  "\n",  " 

Collected tags are grouped with some files attributes, currently: size, mtime, atime.<br>

Tags and file attributes constitute the index entry for the file.

Discarding files and tags from indexing

Files with an extension present in ./priv/banned_file_ext are not indexed.

Tags present in ./priv/banned_tags are not indexed.

Advanced search

jaro search

by size search

build

sls is built with a static secret key that can be customized with the SLS_SECRET environment variable. The secret key combined with the -p password protect the index content.

mix deps.get
mix do escript.build + escript.install
asdf reshim elixir # if using asdf

or with a custom secret key:
mix deps.get
SLS_SECRET="myBuiltSecret" mix do escript.build + escript.install
asdf reshim elixir # if using asdf

run

superls