mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-04-06 07:47:53 +10:00
tons of fixes with codex
This commit is contained in:
@@ -1 +0,0 @@
|
||||
{"type": "Binary", "name": "git", "binproviders": "apt,brew,env"}
|
||||
48
archivebox/plugins/git/on_Crawl__05_git_install.py
Executable file
48
archivebox/plugins/git/on_Crawl__05_git_install.py
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Emit git Binary dependency for the crawl.
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def get_env(name: str, default: str = '') -> str:
|
||||
return os.environ.get(name, default).strip()
|
||||
|
||||
def get_env_bool(name: str, default: bool = False) -> bool:
|
||||
val = get_env(name, '').lower()
|
||||
if val in ('true', '1', 'yes', 'on'):
|
||||
return True
|
||||
if val in ('false', '0', 'no', 'off'):
|
||||
return False
|
||||
return default
|
||||
|
||||
|
||||
def output_binary(name: str, binproviders: str):
|
||||
"""Output Binary JSONL record for a dependency."""
|
||||
machine_id = os.environ.get('MACHINE_ID', '')
|
||||
|
||||
record = {
|
||||
'type': 'Binary',
|
||||
'name': name,
|
||||
'binproviders': binproviders,
|
||||
'machine_id': machine_id,
|
||||
}
|
||||
print(json.dumps(record))
|
||||
|
||||
|
||||
def main():
|
||||
git_enabled = get_env_bool('GIT_ENABLED', True)
|
||||
|
||||
if not git_enabled:
|
||||
sys.exit(0)
|
||||
|
||||
output_binary(name='git', binproviders='apt,brew,env')
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Detect git binary and emit Binary JSONL record.
|
||||
|
||||
Output: Binary JSONL record to stdout if git is found
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
from abx_pkg import Binary, EnvProvider
|
||||
|
||||
|
||||
def get_env(name: str, default: str = '') -> str:
|
||||
return os.environ.get(name, default).strip()
|
||||
|
||||
def get_env_bool(name: str, default: bool = False) -> bool:
|
||||
val = get_env(name, '').lower()
|
||||
if val in ('true', '1', 'yes', 'on'):
|
||||
return True
|
||||
if val in ('false', '0', 'no', 'off'):
|
||||
return False
|
||||
return default
|
||||
|
||||
|
||||
def output_binary_found(binary: Binary, name: str):
|
||||
"""Output Binary JSONL record for an installed binary."""
|
||||
machine_id = os.environ.get('MACHINE_ID', '')
|
||||
|
||||
record = {
|
||||
'type': 'Binary',
|
||||
'name': name,
|
||||
'abspath': str(binary.abspath),
|
||||
'version': str(binary.version) if binary.version else '',
|
||||
'sha256': binary.sha256 or '',
|
||||
'binprovider': 'env', # Already installed
|
||||
'machine_id': machine_id,
|
||||
}
|
||||
print(json.dumps(record))
|
||||
|
||||
|
||||
def output_binary_missing(name: str, binproviders: str):
|
||||
"""Output Binary JSONL record for a missing binary that needs installation."""
|
||||
machine_id = os.environ.get('MACHINE_ID', '')
|
||||
|
||||
record = {
|
||||
'type': 'Binary',
|
||||
'name': name,
|
||||
'binproviders': binproviders, # Providers that can install it
|
||||
'machine_id': machine_id,
|
||||
}
|
||||
print(json.dumps(record))
|
||||
|
||||
|
||||
def main():
|
||||
git_enabled = get_env_bool('GIT_ENABLED', True)
|
||||
git_binary = get_env('GIT_BINARY', 'git')
|
||||
|
||||
if not git_enabled:
|
||||
sys.exit(0)
|
||||
|
||||
provider = EnvProvider()
|
||||
try:
|
||||
binary = Binary(name=git_binary, binproviders=[provider]).load()
|
||||
if binary.abspath:
|
||||
# Binary found
|
||||
output_binary_found(binary, name='git')
|
||||
else:
|
||||
# Binary not found
|
||||
output_binary_missing(name='git', binproviders='apt,brew')
|
||||
except Exception:
|
||||
# Binary not found
|
||||
output_binary_missing(name='git', binproviders='apt,brew')
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -2,7 +2,7 @@
|
||||
"""
|
||||
Clone a git repository from a URL.
|
||||
|
||||
Usage: on_Snapshot__git.py --url=<url> --snapshot-id=<uuid>
|
||||
Usage: on_Snapshot__05_git.bg.py --url=<url> --snapshot-id=<uuid>
|
||||
Output: Clones repository to $PWD/repo
|
||||
|
||||
Environment variables:
|
||||
@@ -1 +1 @@
|
||||
📂
|
||||
<span class="abx-output-icon abx-output-icon--git" title="Git"><svg width="16" height="16" viewBox="0 0 24 24" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="2"/><circle cx="6" cy="18" r="2"/><circle cx="18" cy="12" r="2"/><path d="M8 6h5a3 3 0 0 1 3 3v1"/><path d="M8 18h5a3 3 0 0 0 3-3v-1"/></svg></span>
|
||||
|
||||
Reference in New Issue
Block a user