GROK-MANIFEST(1)
π GROK-MANIFEST π
okay bestie, welcome to the grok-manifest page β it's the little script that makes manifests for use with grokmirror, and it's genuinely iconic. no cap. this is GROK-MANIFEST(1), and yes i'm gonna make you read all of it because every flag matters. β¨
πΈ SYNOPSIS πΈ
grok-manifest [opts] -m manifest.js[.gz] -t /path [/path/to/bare.git]
π¦ DESCRIPTION π¦
so the whole vibe is this: you call grok-manifest from a git post-update or post-receive hook, and it creates the latest repository manifest. that manifest file gets downloaded by mirroring systems β but only if the manifest is newer than the one they already have, okay? β and then it's used to only clone/pull the repositories that have actually changed since the last time grok-pull ran.
like. it's giving efficiency. it's giving "don't re-clone the whole world every time." π
β¨ OPTIONS β¨
--versionβ shows the program's version number and then dips out. bye. π-h,--helpβ shows this help message and exits. classic.--cfgfile=CFGFILEβ the path to yourgrokmirror.conf, which needs to contain a[manifest]section.-m MANIFILE,--manifest=MANIFILEβ where themanifest.jsormanifest.js.gzlives. main character location.-t TOPLEVEL,--toplevel=TOPLEVELβ the top dir where all your repositories reside.-l LOGFILE,--logfile=LOGFILEβ when you specify this, debug logs get put here.-c,--check-export-okβ honors thegit-daemon-export-okmagic file and does not export repositories that aren't marked as such. respectful. π«Ά-n,--use-nowβ uses the current timestamp instead of parsing commits.-p,--purgeβ purges deleted git repositories from the manifest. clean sweep bestie π§Ή-x,--removeβ removes the repositories passed as arguments from the manifest file.-y,--prettyβ pretty-prints the generated manifest (sorts repos and adds indentation). > careful though: this is much slower, so it should be used with caution on large collections. it's giving gorgeous but expensive π-w,--wait-for-manifestβ when running with arguments, waits if the manifest isn't there yet. lowkey useful when multiple writers are writing to the manifest file via NFS.-i IGNORE,--ignore-paths=IGNOREβ when finding git dirs, ignores these paths. can be used multiple times, and it accepts shell-style globbing. π-o,--fetch-objstoreβ fetches updates into theobjstorerepo (if used).-v,--verboseβ be verbose and tell us what you're doing. we love a narrator. π
some of these options can be set in a config file that you pass via the --cfgfile option β check the example grokmirror.conf file for the documentation. and heads up: values passed via cmdline flags will override the corresponding config file values. cmdline stays winning, periodt. π
π EXAMPLES π
these examples assume your repositories live in /var/lib/gitolite3/repositories. okay? okay.
initial manifest generation:
/usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \
-t /var/lib/gitolite3/repositories
inside the git hook:
/usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \
-t /var/lib/gitolite3/repositories -n `pwd`
to purge deleted repositories from the manifest, use the -p flag when running from cron:
/usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \
-t /var/lib/gitolite3/repositories -p
you can also add it to the gitolite's D command using the -x flag:
/usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \
-t /var/lib/gitolite3/repositories \
-x $repo.git
to troubleshoot potential problems, you can pass the -l parameter to grok-manifest β just make sure the user executing the hook command (user git or gitolite, for example) is able to write to that location:
/usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \
-t /var/lib/gitolite3/repositories \
-l /var/log/grokmirror/grok-manifest.log -n `pwd`
π SEE ALSO π
π«Ά SUPPORT π«Ά
email tools@linux.kernel.org. they're nice, promise.
π AUTHOR π
mricon@kernel.org
License: GPLv3+
π COPYRIGHT π
The Linux Foundation and contributors
and that's the whole page bestie!! version 2.0.0, dated 2020-08-14 β literally a classic, fr fr. go make some manifests, you've got this πβ¨ππ¦πΈ
π¦ where this page comes from
- debian trixie: grokmirror 2.0.12-1 Β· GPL-3.0-or-later
- epel 9: python3-grokmirror 2.0.12-1.el9 Β· GPL-3.0-or-later
- fedora 43: python3-grokmirror 2.0.12-6.fc43 Β· GPL-3.0-or-later
- fedora 44: python3-grokmirror 2.0.12-7.fc44 Β· GPL-3.0-or-later
- ubuntu noble: grokmirror 2.0.11-2 Β· GPL-3.0-or-later
- ubuntu questing: grokmirror 2.0.12-1
- ubuntu resolute: grokmirror 2.0.12-1build1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms