Skip to main content

opengrokfs implements a FUSE filesystem backed by the OpenGrok web interface. A cscope clone which uses the OpenGrok web interface as the backend is also included.

Install with pip:

pip3 install opengrokfs

Run opengrokfs with the URL of the OpenGrok start page and the local directory where the filesystem should be mounted:

mkdir -p mnt
opengrokfs http://androidxref.com/7.1.1_r6/ mnt

Now you can access the files:

$ ls mnt/
Android.bp  bootable        bionic  development  external
art         bootstrap.bash  dalvik  device       frameworks
...

Use oggrep to search using OpenGrok’s “Full Search”:

$ cd mnt/bionic/
mnt/bionic$ oggrep O_LARGEFILE
libc/kernel/uapi/asm-arm/asm/fcntl.h:#define O_LARGEFILE 0400000
libc/kernel/uapi/asm-arm64/asm/fcntl.h:#define O_LARGEFILE 0400000
libc/bionic/lfs64_support.cpp:// are already 64-bit ready. In particular, we don't have non-O_LARGEFILE
libc/bionic/open.cpp:  return flags | O_LARGEFILE;
libc/kernel/uapi/asm-mips/asm/fcntl.h:#define O_LARGEFILE 0x2000
libc/kernel/uapi/asm-generic/fcntl.h:#ifndef O_LARGEFILE
libc/kernel/uapi/asm-generic/fcntl.h:#define O_LARGEFILE 00100000
tests/stdlib_test.cpp:  ASSERT_EQ(O_LARGEFILE, fcntl(tf.fd, F_GETFL) & O_LARGEFILE);

ogcscope emulates cscope’s line-oriented interface but uses OpenGrok as the backend:

mnt/bionic$ ogcscope -dl
>> 1CLONE_CHILD_SETTID
cscope: 1 lines
libc/kernel/uapi/linux/sched.h <unknown> 41 #define CLONE_CHILD_SETTID 0x01000000
>> 0CLONE_CHILD_SETTID
cscope: 5 lines
libc/bionic/clone.cpp <unknown> 53   if ((flags & (CLONE_PARENT_SETTID|CLONE_SETTLS|CLONE_CHILD_SETTID|CLONE_CHILD_CLEARTID)) != 0) {
libc/bionic/clone.cpp <unknown> 56   if ((flags & (CLONE_SETTLS|CLONE_CHILD_SETTID|CLONE_CHILD_CLEARTID)) != 0) {
libc/bionic/clone.cpp <unknown> 59   if ((flags & (CLONE_CHILD_SETTID|CLONE_CHILD_CLEARTID)) != 0) {
libc/bionic/fork.cpp <unknown> 34 #define FORK_FLAGS (CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD)
libc/kernel/uapi/linux/sched.h <unknown> 41 #define CLONE_CHILD_SETTID 0x01000000

ogcscope can be used from within any editor which supports cscope. For example, for vim:

mnt/bionic$ vim -c 'set cscopeprg=ogcscope' -c 'cs add .opengrokfs'

Release files for opengrokfs 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for opengrokfs 0.2.1
File Size Uploaded
opengrokfs-0.2.1.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for opengrokfs 0.2.1
File Interpreter ABI Platform
opengrokfs-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 15.1 kB

Release files / opengrokfs-0.2.1.tar.gz

Download URL opengrokfs-0.2.1.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
435edd9f41f9aa1d208be3b13fc6b7fc4007ac45dd06424435ecd3de9fd00d4a
BLAKE2b-256 checksum
How to use checksums
586b082832f64ff63e2ed6c7fec5b71ff257108575adc7a1fc73f89dc3d15f23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / opengrokfs-0.2.1-py3-none-any.whl

Download URL opengrokfs-0.2.1-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08acfd774cb9e14e46748909143c03d6157e6fcd0f4a6cb55a354dfed44d6c69
BLAKE2b-256 checksum
How to use checksums
25b48a5be4cd8744f4dc66b4d379281b25df2122e0606e321809d0a8f01d1e33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page