JUST-LOCK(1)
π just-lock β the manual page, but make it make sense π
okay bestie, this is just-lock(1) from the General Commands Manual, section 1, and I'm gonna walk you through it like we're texting at 2am. no cap, every flag stays. let's go π«Ά
β¨ NAME β¨
just-lock β generate and maintain a multi-repository configuration file
like, it makes the file. it keeps the file correct. that's the whole vibe. π
β¨ SYNOPSIS β¨
just-lock [OPTION]...
that's it. just options. iconic minimalism. π
β¨ DESCRIPTION β¨
so Just-Lock is a tool that's literally several tools in a trench coat, and all of them are about generating and maintaining the just-mr-repository-config(5) of a Just project. its whole main character energy is centered around multi-repository configuration composition. periodt.
the headline act: it imports dependencies that other Just projects declared, and then generates a repository configuration you can hand straight to just-mr(1). the imported repos get renamed so that no conflicts pop off, and also so you can tell at a glance which repos they came in as a dependency of. this mirrors what tools like just-import-git(1) can do, but it's likeβ¦ the upgraded version. it adds features such as letting multiple imports just happen implicitly, and supporting imports from sources that aren't Git repos β think distfiles, local clones, repos living under whatever arbitrary version control system you're obsessed with. π
by default, the final configuration has its repositories deduplicated β meaning indistinguishable repositories get merged into a single entry, except for the "main" repository and any explicitly stated ones. this mirrors the standalone capability of just-deduplicate-repos(1). so you get that feature for free, no extra tool needed. π₯
and how does it know what to do? it runs these operations based on a provided just-lock-config(5) input file, and it drops the resulting configuration file either at a location you explicitly gave it, or at the location just-mr(5) expects to find it. yes bestie, it knows where the file goes. it's got main character energy AND good instincts. π
β¨ OPTIONS β¨
-h,--helpβ outputs a usage message and then exits. the classic. the "wait what were the flags again" move. π-CCONFIGFILE β use the specified file as the inputjust-lock-config(5)file. if you don't specify one, it goes looking for a file namedrepos.in.json, and it searches the same directoriesjust-mrsearches when it's invoked with--norcwhile hunting for its configuration file. so like, same search behavior, different file. iykyk. π-oCONFIGFILE β use the specified file as the outputjust-mr-repository-config(5)file. if you don't specify one, it searches for a file the same wayjust-mrdoes when invoked with--norc. and if that search finds nothing? then it's a file with filenamerepos.jsonin the parent directory of the input configuration file. so there's always a fallback, she's prepared. β¨--local-build-rootPATH β the root for local CAS, cache, and build directories. if that path doesn't exist yet, it will be created, so don't stress. π«Ά Default: the path.cache/justin your home directory.--justPATH β path to thejustbuildbinary inPATH, or just a direct path to thejustbuildbinary. either works, she's flexible. Default:"/usr/bin/justbuild".-L,--local-launcherJSON_ARRAY β a JSON array with the list of strings representing the launcher to prepend to any commands being executed locally. yes, prepend. launcher goes first, always. π Default:["env", "--"].--gitPATH β path to thegitbinary inPATH, or a path to thegitbinary. this one gets used whenever shelling out to git is needed. Default:"git".--cloneJSON_MAP β a JSON map from a filesystem path to a pair of: a repository name, and a list of bindings. for each entry in that map, the target repository β found by following the bindings starting from a given start repository, and only after all repositories have been imported β will have its workspace root cloned into the specified filesystem directory, and its description in the output configuration will be made to point to this clone. π¦ heads up though: the start repository names must be known, meaning an initial repository or a declared import. and both the start and the target repositories will be kept during deduplication. no merging those two away, bestie. π
β¨ See also β¨
go read these too, they're the whole friend group: git(1), just-lock-config(5), just-import-git(1), just-deduplicate-repos(1), just-mr-repository-config(5), just-mr(1).
and that's the page!! πΈ this was JUST-LOCK(1) from the General Commands Manual, section 1 β go lock those repos, bestie, you're literally gonna slay πβ¨π
π¦ where this page comes from
- ubuntu stonking: justbuild 1.6.5-0.1build2 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms