Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
stagfs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
SexHackMe
stagfs
Commits
0ae2f7ae
Commit
0ae2f7ae
authored
Aug 19, 2023
by
Stefy Lanza (nextime / spora )
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Start to create structure
parent
d19ce371
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
101 additions
and
71 deletions
+101
-71
stagfs.py
stagfs.py
+101
-71
No files found.
stagfs.py
View file @
0ae2f7ae
#!/usr/bin/env python
#!/usr/bin/env python
3
from
__future__
import
print_function
,
absolute_import
,
division
import
logging
...
...
@@ -10,14 +10,32 @@ from threading import Lock
from
fusepy
import
FUSE
,
FuseOSError
,
Operations
,
LoggingMixIn
class
Loopback
(
LoggingMixIn
,
Operations
):
def
__init__
(
self
,
root
):
self
.
root
=
realpath
(
root
)
self
.
rwlock
=
Lock
()
#def __call__(self, op, path, *args):
# return super(Loopback, self).__call__(op, self.root + path, *args)
def
__call__
(
self
,
op
,
path
,
*
args
):
print
(
op
)
print
(
path
)
if
path
==
'/'
and
op
!=
'init'
:
return
super
(
Loopback
,
self
)
.
__call__
(
'base_'
+
op
,
path
,
*
args
)
if
path
==
'/'
and
op
==
'init'
:
return
super
(
Loopback
,
self
)
.
__call__
(
op
,
path
,
*
args
)
psplit
=
path
.
split
(
'/'
,
2
)
pstart
=
False
if
len
(
psplit
)
>
1
:
pstart
=
psplit
[
1
]
if
pstart
and
pstart
==
'CONTENT'
:
return
super
(
Loopback
,
self
)
.
__call__
(
op
,
self
.
root
+
path
.
replace
(
'/CONTENT'
,
''
),
*
args
)
if
pstart
in
[
'TAGS'
,
'CATEGORIES'
]
and
path
.
replace
(
'/'
+
pstart
,
''
)
==
''
:
return
super
(
Loopback
,
self
)
.
__call__
(
op
,
self
.
root
,
*
args
)
raise
FuseOSError
(
EACCES
)
def
base_destroy
(
self
,
*
args
):
return
self
.
destroy
(
*
args
)
def
access
(
self
,
path
,
mode
):
if
not
os
.
access
(
path
,
mode
):
...
...
@@ -44,6 +62,15 @@ class Loopback(LoggingMixIn, Operations):
'st_atime'
,
'st_ctime'
,
'st_gid'
,
'st_mode'
,
'st_mtime'
,
'st_nlink'
,
'st_size'
,
'st_uid'
))
def
base_getattr
(
self
,
path
,
fh
=
None
):
return
{
'st_atime'
:
1692365924.6988926
,
'st_ctime'
:
1692365924.6988926
,
'st_gid'
:
1000
,
'st_mode'
:
16877
,
'st_mtime'
:
1692365924.6988926
,
'st_nlink'
:
2
,
'st_size'
:
0
,
'st_uid'
:
1000
}
def
base_opendir
(
self
,
path
,
fh
=
None
):
return
0
def
base_releasedir
(
self
,
path
,
fh
=
None
):
return
0
getxattr
=
None
def
link
(
self
,
target
,
source
):
...
...
@@ -62,6 +89,9 @@ class Loopback(LoggingMixIn, Operations):
def
readdir
(
self
,
path
,
fh
):
return
[
'.'
,
'..'
]
+
os
.
listdir
(
path
)
def
base_readdir
(
self
,
path
,
fh
):
return
[
'.'
,
'..'
,
'CONTENT'
,
'TAGS'
,
'CATEGORIES'
]
readlink
=
os
.
readlink
def
release
(
self
,
path
,
fh
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment