OpenSBI uses `.mk` files. The tokenizer does not get ran on files
without a family (sad). Adding this means we index references
inside .mk files, eg:
# opensbi/lib/utils/i2c/objects.mk
libsbiutils-objs-$(CONFIG_I2C) += i2c/i2c.o
Also, refactor the getFileFamily():
- All usage of name/ext do a .lower() on them, move it to the top.
- Use `x == "A"` checks rather than `x in ["A"]`.
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
We had an hardcoded mobile banner that was nice looking but couldn't
deal with all the content for the various banners we want to display.
Also, it was a separate element to the desktop one. Unify them as a
single element that adapts (as it should) to desktop or mobile
viewports.
Take the pm_ptr() macro as example:
⟩ ctags -x --kinds-c=+p+x --extras='-{anonymous}' include/linux/pm.h | grep pm_ptr
pm_ptr macro 475 include/linux/pm.h #define pm_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM), (_ptr))
The previous grep would remove the pm_ptr() line because it contains
CONFIG_. We only want to remove a line if it starts with CONFIG_.
Testing this commit:
⟩ export LXR_REPO_DIR=...
⟩ hash=97b0e23363c8283f53c361d8129ef90d7a2b9350
⟩ ./script.sh parse-defs $hash pm.h C | sort > /tmp/defs-pm-before.txt
⟩ # TODO: apply commit
⟩ ./script.sh parse-defs $hash pm.h C | sort > /tmp/defs-pm-after.txt
⟩ comm -13 /tmp/defs-pm-before.txt /tmp/defs-pm-after.txt
pm_ptr macro 475
pm_sleep_ptr macro 476
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Examples:
/musl/v1.2.5/sourc
/musl/v1.2.5/sourc/
/musl/v1.2.5/sourc/asd
/musl/v1.2.5/sourc/asd/
/musl/v1.2.5/sourc/asd/zxc
/musl/v1.2.5/sourc/asd/zxc/
/musl/v1.2.5/sourc/asd/zxc/...
Falcon requires field names on one level to be the same on all
(matching?) paths.
On my machine, a `docker build` after any file change is:
- Before this patch: 7.29s
- Afterwards: 2.18s
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
This changes the stdout/stderr buffering behavior of Python. Without it,
indexing scripts don't stream updates and use really big buffers.
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Instead, start from $0 and move back up two times. So, something like:
./elixir/utils/index
./elixir/utils
./elixir
./elixir/update.py
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Stop writing a global file when initializing projects. This can cause
permission issues. We instead pass the option manually for each Git
process call using:
git -c safe.directory=...
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Previously, to start an indexing from scratch:
./utils/index /srv/elixir-data musl https://git.musl-libc.org/git/musl
This is annoying as the script already has the remote URLs for all known
projects. Now, a call without remote will automatically add the remote
URLs matching the project name:
./utils/index /srv/elixir-data musl
This copies the behavior that was previously only implemented for --all.
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
New script utils/index does an automatic call to `git gc --auto` and if
it detects a gc.log file, it runs `git gc --aggressive`.
There shouldn't be any reason for people to have to think about that
aspect. Remove that info from the README and make it lighter weight.
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
utils/pack-repositories did the following on repos which have a gc.log
file existing (created when GC fails):
git prune
git gc --aggressive
git prune
git gc --aggressive
Here we:
- Delete utils/pack-repositories; we don't want that detection to be
done manually. Instead, we integrate the gc.log detection into
utils/index that should be called often.
- Create a hidden flag ($ELIXIR_GC) to allow manual trigger.
- Replace the above sequence with a simpler `git gc --aggressive`.
Let's trust Git.
- Do a `git gc --auto` in the default case. This call is automatically
done by porcelain commands but we don't run any so let's give Git an
opportunity to cleanup from time to time (heuristic based).
- Replace the gc.log detection from:
find . -name gc.log
To:
test -e $data/$project/repo/gc.log
It should be more reliable. With the first approach we risk projects
that contain a file gc.log to trigger the detection on each run.
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Avoid the following Git warning:
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>