opengrok fuse文件系统和工具
opengrokfs的Python项目详细描述
opengrokfs实现了一个由opengrok web接口支持的fuse文件系统。 使用opengrok web界面作为后端的cscope克隆 包括。
使用pip安装:
pip3 install opengrokfs
使用opengrok起始页的url和本地 安装文件系统的目录:
mkdir -p mnt opengrokfs http://androidxref.com/7.1.1_r6/ mnt
现在您可以访问文件:
$ ls mnt/ Android.bp bootable bionic development external art bootstrap.bash dalvik device frameworks ...
使用oggrep使用opengrok的“完全搜索”进行搜索:
$ 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模拟cscope的面向行的接口,但使用opengrok作为 后端:
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可以从任何支持cscope的编辑器中使用。为了 例如,对于vim:
mnt/bionic$ vim -c 'set cscopeprg=ogcscope' -c 'cs add .opengrokfs'