[GH-ISSUE #545] archivebox config --set parsing error #3366

Closed
opened 2026-03-14 22:26:32 +03:00 by kerem · 1 comment
Owner

Originally created by @ykuksenko on GitHub (Nov 22, 2020).
Original GitHub issue: https://github.com/ArchiveBox/ArchiveBox/issues/545

Describe the bug

If a archivebox config --set statement contains more than one equal sign the parser fails and the config is not set.

Steps to reproduce

Inside an initialized docker container run the following commands. This is attempting to set the existing defaults for WGET_ARGS.

Fail example:

archivebox@808c94d78e0e:/data$ archivebox config --set 'WGET_ARGS=["--no-verbose","--adjust-extension","--convert-links","--force-directories","--backup-converted","--span-hosts","--no-parent","-e","robots=off"]'
[i] [2020-11-22 05:59:14] ArchiveBox v0.4.21: archivebox config --set WGET_ARGS=["--no-verbose","--adjust-extension","--convert-links","--force-directories","--backup-converted","--span-hosts","--no-parent","-e","robots=off"]
    > /data

Traceback (most recent call last):
  File "/usr/local/bin/archivebox", line 33, in <module>
    sys.exit(load_entry_point('archivebox', 'console_scripts', 'archivebox')())
  File "/app/archivebox/cli/__init__.py", line 123, in main
    run_subcommand(
  File "/app/archivebox/cli/__init__.py", line 63, in run_subcommand
    module.main(args=subcommand_args, stdin=stdin, pwd=pwd)    # type: ignore
  File "/app/archivebox/cli/archivebox_config.py", line 50, in main
    config(
  File "/app/archivebox/util.py", line 113, in typechecked_function
    return func(*args, **kwargs)
  File "/app/archivebox/main.py", line 868, in config
    raw_key, val = line.split('=')
ValueError: too many values to unpack (expected 2)

Success example

archivebox@808c94d78e0e:/data$ archivebox config --set 'WGET_ARGS=["--no-verbose","--adjust-extension","--convert-links","--force-directories","--backup-converted","--span-hosts","--no-parent"]'
[i] [2020-11-22 05:59:21] ArchiveBox v0.4.21: archivebox config --set WGET_ARGS=["--no-verbose","--adjust-extension","--convert-links","--force-directories","--backup-converted","--span-hosts","--no-parent"]
    > /data

WGET_ARGS=['--no-verbose', '--adjust-extension', '--convert-links', '--force-directories', '--backup-converted', '--span-hosts', '--no-parent']

Software versions

archivebox version
ArchiveBox v0.4.21

[i] Dependency versions:
 √  PYTHON_BINARY          /usr/local/bin/python3.8                                                     v3.8.6          valid 
 √  DJANGO_BINARY          /usr/local/lib/python3.8/site-packages/django/bin/django-admin.py            v3.0.8          valid 
 √  CURL_BINARY            /usr/bin/curl                                                                v7.64.0         valid 
 √  WGET_BINARY            /usr/bin/wget                                                                v1.20.1         valid 
 √  SINGLEFILE_BINARY      /node/node_modules/single-file/cli/single-file                               v0.1.14         valid 
 √  READABILITY_BINARY     /node/node_modules/readability-extractor/readability-extractor               v0.1.0          valid 
 √  MERCURY_BINARY         /node/node_modules/@postlight/mercury-parser/cli.js                          v1.0.0          valid 
 √  GIT_BINARY             /usr/bin/git                                                                 v2.20.1         valid 
 √  YOUTUBEDL_BINARY       /usr/local/bin/youtube-dl                                                    v2020.11.19     valid 
 √  CHROME_BINARY          /usr/bin/chromium                                                            v83.0.4103.116  valid 

[i] Source-code locations:
 √  PACKAGE_DIR            /app/archivebox                                                              21 files        valid 
 √  TEMPLATES_DIR          /app/archivebox/themes/legacy                                                7 files         valid 

[i] Secrets locations:
 -  CHROME_USER_DATA_DIR   None                                                                         -               disabled 
 -  COOKIES_FILE           None                                                                         -               disabled 

[i] Data locations:
 √  OUTPUT_DIR             /data                                                                        6 files         valid 
 √  SOURCES_DIR            /data/sources                                                                3 files         valid 
 √  LOGS_DIR               /data/logs                                                                   0 files         valid 
 √  ARCHIVE_DIR            /data/archive                                                                43 files        valid 
 √  CONFIG_FILE            /data/ArchiveBox.conf                                                        247.0 Bytes     valid 
 √  SQL_INDEX              /data/index.sqlite3                                                          196.0 KB        valid 
Originally created by @ykuksenko on GitHub (Nov 22, 2020). Original GitHub issue: https://github.com/ArchiveBox/ArchiveBox/issues/545 #### Describe the bug If a `archivebox config --set` statement contains more than one equal sign the parser fails and the config is not set. #### Steps to reproduce Inside an initialized docker container run the following commands. This is attempting to set the existing defaults for WGET_ARGS. Fail example: ``` archivebox@808c94d78e0e:/data$ archivebox config --set 'WGET_ARGS=["--no-verbose","--adjust-extension","--convert-links","--force-directories","--backup-converted","--span-hosts","--no-parent","-e","robots=off"]' [i] [2020-11-22 05:59:14] ArchiveBox v0.4.21: archivebox config --set WGET_ARGS=["--no-verbose","--adjust-extension","--convert-links","--force-directories","--backup-converted","--span-hosts","--no-parent","-e","robots=off"] > /data Traceback (most recent call last): File "/usr/local/bin/archivebox", line 33, in <module> sys.exit(load_entry_point('archivebox', 'console_scripts', 'archivebox')()) File "/app/archivebox/cli/__init__.py", line 123, in main run_subcommand( File "/app/archivebox/cli/__init__.py", line 63, in run_subcommand module.main(args=subcommand_args, stdin=stdin, pwd=pwd) # type: ignore File "/app/archivebox/cli/archivebox_config.py", line 50, in main config( File "/app/archivebox/util.py", line 113, in typechecked_function return func(*args, **kwargs) File "/app/archivebox/main.py", line 868, in config raw_key, val = line.split('=') ValueError: too many values to unpack (expected 2) ``` Success example ``` archivebox@808c94d78e0e:/data$ archivebox config --set 'WGET_ARGS=["--no-verbose","--adjust-extension","--convert-links","--force-directories","--backup-converted","--span-hosts","--no-parent"]' [i] [2020-11-22 05:59:21] ArchiveBox v0.4.21: archivebox config --set WGET_ARGS=["--no-verbose","--adjust-extension","--convert-links","--force-directories","--backup-converted","--span-hosts","--no-parent"] > /data WGET_ARGS=['--no-verbose', '--adjust-extension', '--convert-links', '--force-directories', '--backup-converted', '--span-hosts', '--no-parent'] ``` #### Software versions ``` archivebox version ArchiveBox v0.4.21 [i] Dependency versions: √ PYTHON_BINARY /usr/local/bin/python3.8 v3.8.6 valid √ DJANGO_BINARY /usr/local/lib/python3.8/site-packages/django/bin/django-admin.py v3.0.8 valid √ CURL_BINARY /usr/bin/curl v7.64.0 valid √ WGET_BINARY /usr/bin/wget v1.20.1 valid √ SINGLEFILE_BINARY /node/node_modules/single-file/cli/single-file v0.1.14 valid √ READABILITY_BINARY /node/node_modules/readability-extractor/readability-extractor v0.1.0 valid √ MERCURY_BINARY /node/node_modules/@postlight/mercury-parser/cli.js v1.0.0 valid √ GIT_BINARY /usr/bin/git v2.20.1 valid √ YOUTUBEDL_BINARY /usr/local/bin/youtube-dl v2020.11.19 valid √ CHROME_BINARY /usr/bin/chromium v83.0.4103.116 valid [i] Source-code locations: √ PACKAGE_DIR /app/archivebox 21 files valid √ TEMPLATES_DIR /app/archivebox/themes/legacy 7 files valid [i] Secrets locations: - CHROME_USER_DATA_DIR None - disabled - COOKIES_FILE None - disabled [i] Data locations: √ OUTPUT_DIR /data 6 files valid √ SOURCES_DIR /data/sources 3 files valid √ LOGS_DIR /data/logs 0 files valid √ ARCHIVE_DIR /data/archive 43 files valid √ CONFIG_FILE /data/ArchiveBox.conf 247.0 Bytes valid √ SQL_INDEX /data/index.sqlite3 196.0 KB valid ```
kerem closed this issue 2026-03-14 22:26:46 +03:00
Author
Owner

@pirate commented on GitHub (Nov 22, 2020):

Fixed github.com/pirate/ArchiveBox@b11d562445

thanks!

<!-- gh-comment-id:731781844 --> @pirate commented on GitHub (Nov 22, 2020): Fixed https://github.com/pirate/ArchiveBox/commit/b11d5624452b3c047c6e342d31bcaad576b30696 thanks!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ArchiveBox#3366
No description provided.