-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Announcement: Renaming init --setup
to install
+ init --createsuperuser
in upcoming release
#1348
Comments
|
I'm planning to use ansible for the new install system, which will provide:
https://docs.ansible.com/ansible/latest/dev_guide/developing_api.html |
init --setup
is confusing because the words mean similar things.I think I want to do something similar to
playwright
'sinstall
+--with-deps
.I also want to install all dependencies into
data/lib/...
and symlink them intodata/bin/
.archivebox init
--install
|--install=system,local,extras,search,...
: install package dependencies during init--createsuperuser
: runarchivebox manage createsuperuser
during initarchivebox install [pkgname|tagname]
If
[pkgname|tagname]
is not specified, it will install everything by default.If a
[pkgname|tagname]
is specified, it will try to install that package or packages matching that tag using any/all the providers it supports.--provider=apt|brew|pkg|pip|npm|cargo|...
specify which dependency provider to use[provider options]
e.g.archivebox install wget --provider=user --path=/hardcoded/path/to/wget
Dependencies
git
tags
:system
,extractors
config
:{enabled: True, args: [], git_domains: 'github.com,gitlab.com,...'}
providers
:{'*': {name: 'git'}, apt: {}, brew: {}, pkg: {}, usr: {}}
@bin_path()
:$ which git
@version()
:$ git --version
@is_valid()
:self.bin_path and self.version > 2.1.1
@provider()
:$ which git && echo 'external' || (which apt | which brew | which pkg) || echo None
.post_install()
:link_dependency(): $ ln -s {self.bin_path} data/bin/git
.install(provider=self.get_provider)
: `provider.install(**self.providers[self.provider])yt-dlp
tags
:local
,extractors
config
:{enabled, max_media_size, playlists, args: [--max-media-size=MAX_MEDIA_SIZE, --playlists=PLAYLISTS}
providers
:{'*': {name: 'yt-dlp'}, apt: {name: 'yt-dlp ffmpeg'}, brew: {}, pip: {}, usr: {}}
ripgrep
tags
:system
,extras
,search
config
:{enabled, args}
providers
:{'*': {name: 'ripgrep'}, apt: {}, brew: {}, pip: {}, usr: {}}
sonic
tags
:system
,extras
,daemons
,search
config
:{enabled, host, port, username, password, args: ['-c', 'data/etc/sonic.cfg']}
providers
:{'*': {name: 'sonic'}, apt: {preinstall:
}, brew: {}, cargo: {}, usr: {}}
.post_install()
: ifdata/etc/sonic.cfg
not present, download it from github.start()
:{self.bin_path} {args}
@pid()
: {pid: 1234, host: HOSTNAME, port: PORT}.stop()
:$ kill {self.pid}; sleep 30; kill -9 {self.pid}
@is_up()
:test_sonic_connection(*self.pid)
...
...
sys install
:git
,curl
,wget
,ffmpeg
,ripgrep
,sonic
,nodejs
,pip
, fonts, etc.pip install
:yt-dlp
,gallery-dl
,playwright
+chromium
npm install
:singlefile
,readability
,mercury
Providers
apt
sudo
:True
@is_available()
:$ (which apt)
.install(name: str, sources={}, install_recommends=True)
:@installed(names: List[str)
:pip
sudo
:False
@is_available()
:$ (which pip) && python3 && pip3
.install(name: str, pip_args='--upgrade')
python3 -m venv data/lib/pip/venv source data/lib/pip/venv/bin/activate pip install {pip_args} [name]
...
...
State directories
data/lib/{apt,brew,pkg,usr}/bin/...
(symlinks to user-provided or system-installed binaries)data/lib/pip/venv/bin
(python venv for local packages)data/lib/npm/node_modules/.bin
(npm node_modules for local packagesdata/lib/cargo/bin/
(cargo folder for local packages)data/lib/usr/bin/...
(dir of symlinks to user-provided binaries)data/bin
(all final binaries are symlinked here)data/etc
(etc / config files)The text was updated successfully, but these errors were encountered: