mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-04-06 07:47:53 +10:00
wip
This commit is contained in:
0
packages/abx-plugin-git-extractor/README.md
Normal file
0
packages/abx-plugin-git-extractor/README.md
Normal file
46
packages/abx-plugin-git-extractor/__init__.py
Normal file
46
packages/abx-plugin-git-extractor/__init__.py
Normal file
@@ -0,0 +1,46 @@
|
||||
__package__ = 'plugins_extractor.git'
|
||||
__label__ = 'git'
|
||||
__version__ = '2024.10.14'
|
||||
__author__ = 'ArchiveBox'
|
||||
__homepage__ = 'https://github.com/git/git'
|
||||
__dependencies__ = []
|
||||
|
||||
import abx
|
||||
|
||||
|
||||
@abx.hookimpl
|
||||
def get_PLUGIN():
|
||||
return {
|
||||
'git': {
|
||||
'PACKAGE': __package__,
|
||||
'LABEL': __label__,
|
||||
'VERSION': __version__,
|
||||
'AUTHOR': __author__,
|
||||
'HOMEPAGE': __homepage__,
|
||||
'DEPENDENCIES': __dependencies__,
|
||||
}
|
||||
}
|
||||
|
||||
@abx.hookimpl
|
||||
def get_CONFIG():
|
||||
from .config import GIT_CONFIG
|
||||
|
||||
return {
|
||||
'git': GIT_CONFIG
|
||||
}
|
||||
|
||||
@abx.hookimpl
|
||||
def get_BINARIES():
|
||||
from .binaries import GIT_BINARY
|
||||
|
||||
return {
|
||||
'git': GIT_BINARY,
|
||||
}
|
||||
|
||||
@abx.hookimpl
|
||||
def get_EXTRACTORS():
|
||||
from .extractors import GIT_EXTRACTOR
|
||||
|
||||
return {
|
||||
'git': GIT_EXTRACTOR,
|
||||
}
|
||||
18
packages/abx-plugin-git-extractor/binaries.py
Normal file
18
packages/abx-plugin-git-extractor/binaries.py
Normal file
@@ -0,0 +1,18 @@
|
||||
__package__ = 'plugins_extractor.git'
|
||||
|
||||
from typing import List
|
||||
|
||||
from pydantic import InstanceOf
|
||||
from pydantic_pkgr import BinProvider, BinName
|
||||
|
||||
from abx.archivebox.base_binary import BaseBinary, env, apt, brew
|
||||
|
||||
from .config import GIT_CONFIG
|
||||
|
||||
|
||||
|
||||
class GitBinary(BaseBinary):
|
||||
name: BinName = GIT_CONFIG.GIT_BINARY
|
||||
binproviders_supported: List[InstanceOf[BinProvider]] = [apt, brew, env]
|
||||
|
||||
GIT_BINARY = GitBinary()
|
||||
28
packages/abx-plugin-git-extractor/config.py
Normal file
28
packages/abx-plugin-git-extractor/config.py
Normal file
@@ -0,0 +1,28 @@
|
||||
__package__ = 'plugins_extractor.git'
|
||||
|
||||
from typing import List
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from abx.archivebox.base_configset import BaseConfigSet
|
||||
|
||||
from archivebox.config.common import ARCHIVING_CONFIG
|
||||
|
||||
|
||||
class GitConfig(BaseConfigSet):
|
||||
|
||||
SAVE_GIT: bool = True
|
||||
|
||||
GIT_DOMAINS: str = Field(default='github.com,bitbucket.org,gitlab.com,gist.github.com,codeberg.org,gitea.com,git.sr.ht')
|
||||
|
||||
GIT_BINARY: str = Field(default='git')
|
||||
GIT_ARGS: List[str] = [
|
||||
'--recursive',
|
||||
]
|
||||
GIT_EXTRA_ARGS: List[str] = []
|
||||
|
||||
GIT_TIMEOUT: int = Field(default=lambda: ARCHIVING_CONFIG.TIMEOUT)
|
||||
GIT_CHECK_SSL_VALIDITY: bool = Field(default=lambda: ARCHIVING_CONFIG.CHECK_SSL_VALIDITY)
|
||||
|
||||
|
||||
GIT_CONFIG = GitConfig()
|
||||
17
packages/abx-plugin-git-extractor/extractors.py
Normal file
17
packages/abx-plugin-git-extractor/extractors.py
Normal file
@@ -0,0 +1,17 @@
|
||||
__package__ = 'plugins_extractor.git'
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from abx.archivebox.base_extractor import BaseExtractor, ExtractorName
|
||||
|
||||
from .binaries import GIT_BINARY
|
||||
|
||||
|
||||
class GitExtractor(BaseExtractor):
|
||||
name: ExtractorName = 'git'
|
||||
binary: str = GIT_BINARY.name
|
||||
|
||||
def get_output_path(self, snapshot) -> Path | None:
|
||||
return snapshot.as_link() / 'git'
|
||||
|
||||
GIT_EXTRACTOR = GitExtractor()
|
||||
7
packages/abx-plugin-git-extractor/pyproject.toml
Normal file
7
packages/abx-plugin-git-extractor/pyproject.toml
Normal file
@@ -0,0 +1,7 @@
|
||||
[project]
|
||||
name = "abx-git-extractor"
|
||||
version = "0.1.0"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = []
|
||||
Reference in New Issue
Block a user