Skip to main content

OpenGrok FUSE filesystem and tools

Project description

opengrokfs implement 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'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opengrokfs-0.2.0.tar.gz (5.6 kB view hashes)

Uploaded Source

Built Distribution

opengrokfs-0.2.0-py3-none-any.whl (9.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page