summaryrefslogtreecommitdiff
path: root/share/man/just-lock.1.md
blob: bc272a9fe7aa6387364d0e8b00a461796f0b5951 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
% JUST-LOCK(1) | General Commands Manual

NAME
====

just-lock - generate and maintain a multi-repository configuration file

SYNOPSIS
========

**`just-lock`** \[*`OPTION`*\]...

DESCRIPTION
===========

Just-Lock is a tool that encompasses several functionalities related to
generating and maintaining the **`just-mr-repository-config`**(5) of a Just
project.

The main functionality of the tool is to import declared dependencies from
other Just projects and generate a repository configuration which can directly
be used by **`just-mr`**(1). The imported repositories are renamed in a way that
no conflicts arise and in a way to remind for which repositories they come as a
dependency. This extends thus the capabilities of existing tools such as
**`just-import-git`**(1) by implicitly allowing multiple imports to take place
and import sources other than Git repositories.

By default, the final configuration has the repositories deduplicated, by
merging indistinguishable repositories, other than the `"main"` repository and
explicitly stated ones, to a single repository. This mirrors the capability
available standalone in **`just-deduplicate-repos`**(1).

The tool performs these operations based on a provided **`just-lock-config`**(5)
input file and outputs the resulting configuration file at either a given
provided location or at a location expected by **`just-mr`**(5).

OPTIONS
=======

**`-h`**, **`--help`**  
Output a usage message and exit.

**`-C`** *`CONFIGFILE`*  
Use the specified file as the input **`just-lock-config`**(5) file.
If not specified, a file with filename `repos.in.json` is searched for in the
same _directories_ as **`just-mr`** does when invoked with **`--norc`** when
searching for its configuration file.

**`-o`** *`CONFIGFILE`*  
Use the specified file as the output **`just-mr-repository-config`**(5) file.
If not specified, a file is searched for in the same way **`just-mr`** does
when invoked with **`--norc`**. If none found, it is a file with filename
`repos.json` in the parent directory of the input configuration file.

**`--local-build-root`** *`PATH`*  
Root for local CAS, cache, and build directories. The path will be created if
it does not exist already.  
Default: path *`".cache/just"`* in user's home directory.

**`--just`** *`PATH`*  
Path to the **`just`** binary in *`PATH`* or path to the **`just`** binary.
Default: *`"just"`*.

**`-L`**, **`--local-launcher`** *`JSON_ARRAY`*  
JSON array with the list of strings representing the launcher to prepend
any commands being executed locally.  
Default: *`["env", "--"]`*.

**`--git`** *`PATH`*  
Path to the git binary in *`PATH`* or path to the git binary. Used when
shelling out to git is needed.  
Default: *`"git"`*.

See also
========

**`git`**(1),
**`just-lock-config`**(5),
**`just-import-git`**(1),
**`just-deduplicate-repos`**(1),
**`just-mr-repository-config`**(5),
**`just-mr`**(1)