inveniosoftware / invenio-cli

CLI module for Invenio
https://invenio-cli.readthedocs.io
MIT License
10 stars 43 forks source link

Wrong asset path in Linux/bash #361

Open scossu opened 1 year ago

scossu commented 1 year ago

Package version (if known): Python 3.9.17 Node 14.21.3 npm 6.14.18 invenio-cli 1.1.0 Invenio 11.0

Describe the bug

Running invenio-cli install after running cookie cutter for Invenio 11.0 results in the following error:


ERROR in ./node_modules/semantic-ui-less/semantic.less
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/less-loader/dist/cjs.js):

@import (multiple) '../../theme.config';
^
Less resolver error:
'../../theme.config' wasn't found. Tried - /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/semantic-ui-less/theme.config,../../theme.config

Webpack resolver error details:
resolve '../../theme.config' in '/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/semantic-ui-less/definitions/modules'
  using description file: /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/semantic-ui-less/package.json (relative path: ./definitions/modules)
    aliased with mapping '../../theme.config': '/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config' to '/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config'
      using description file: /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/semantic-ui-less/package.json (relative path: ./definitions/modules)
        Field 'browser' doesn't contain a valid alias configuration
        using description file: /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/package.json (relative path: ./less/theme.config)
          no extension
            Field 'browser' doesn't contain a valid alias configuration
            /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config doesn't exist
          .less
            Field 'browser' doesn't contain a valid alias configuration
            /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.less doesn't exist
          .css
            Field 'browser' doesn't contain a valid alias configuration
            /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.css doesn't exist
          as directory
            /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config doesn't exist
        root path /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets
          using description file: /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/package.json (relative path: ./home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config)
            no extension
              Field 'browser' doesn't contain a valid alias configuration
              /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config doesn't exist
            .less
              Field 'browser' doesn't contain a valid alias configuration
              /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.less doesn't exist
            .css
              Field 'browser' doesn't contain a valid alias configuration
              /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.css doesn't exist
            as directory
              /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config doesn't exist

Webpack resolver error missing:
/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config,/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.less,/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.css,/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config,/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.less,/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.css

      Error in /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/semantic-ui-less/definitions/modules/transition.less (line 19, column 0)
    at /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/webpack/lib/NormalModule.js:316:20
    at /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/less-loader/dist/index.js:62:5
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
 @ ./js/invenio_theme/theme.js 13:0-40

ERROR in ./js/invenio_theme/templates.js
Module not found: Error: Can't resolve '@templates' in '/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/js/invenio_theme'
 @ ./js/invenio_theme/templates.js 24:17-86
 @ ./js/invenio_search_ui/util.js
 @ ./js/invenio_search_ui/app.js

ERROR in ./js/invenio_app_rdm/deposit/RDMDepositForm.js
Module not found: Error: Can't resolve '@templates/custom_fields' in '/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/js/invenio_app_rdm/deposit'
 @ ./js/invenio_app_rdm/deposit/RDMDepositForm.js 397:17-74
 @ ./js/invenio_app_rdm/deposit/index.js

ERROR in ./js/invenio_communities/community/new.js
Module not found: Error: Can't resolve '@templates/custom_fields' in '/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/js/invenio_communities/community'
 @ ./js/invenio_communities/community/new.js 205:19-76

ERROR in ./js/invenio_communities/settings/profile/index.js
Module not found: Error: Can't resolve '@templates/custom_fields' in '/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/js/invenio_communities/settings/profile'
 @ ./js/invenio_communities/settings/profile/index.js 728:19-76
Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/less-loader/dist/cjs.js!less/invenio_app_rdm/previewer/iiif_simple.less:
    Entrypoint mini-css-extract-plugin = *
    [1] ./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js!./less/invenio_app_rdm/previewer/iiif_simple.less 1.14 KiB {0} [built]
        + 1 hidden module
Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/less-loader/dist/cjs.js!node_modules/semantic-ui-less/semantic.less:
    Entrypoint mini-css-extract-plugin = *
       1 module

    ERROR in ./node_modules/semantic-ui-less/semantic.less (./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js!./node_modules/semantic-ui-less/semantic.less)
    Module build failed (from ./node_modules/less-loader/dist/cjs.js):

    @import (multiple) '../../theme.config';
    ^
    Less resolver error:
    '../../theme.config' wasn't found. Tried - /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/semantic-ui-less/theme.config,../../theme.config

    Webpack resolver error details:
    resolve '../../theme.config' in '/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/semantic-ui-less/definitions/modules'
      using description file: /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/semantic-ui-less/package.json (relative path: ./definitions/modules)
        aliased with mapping '../../theme.config': '/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config' to '/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config'
          using description file: /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/semantic-ui-less/package.json (relative path: ./definitions/modules)
            Field 'browser' doesn't contain a valid alias configuration
            using description file: /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/package.json (relative path: ./less/theme.config)
              no extension
                Field 'browser' doesn't contain a valid alias configuration
                /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config doesn't exist
              .less
                Field 'browser' doesn't contain a valid alias configuration
                /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.less doesn't exist
              .css
                Field 'browser' doesn't contain a valid alias configuration
                /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.css doesn't exist
              as directory
                /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config doesn't exist
            root path /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets
              using description file: /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/package.json (relative path: ./home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config)
                no extension
                  Field 'browser' doesn't contain a valid alias configuration
                  /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config doesn't exist
                .less
                  Field 'browser' doesn't contain a valid alias configuration
                  /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.less doesn't exist
                .css
                  Field 'browser' doesn't contain a valid alias configuration
                  /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.css doesn't exist
                as directory
                  /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config doesn't exist

    Webpack resolver error missing:
    /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config,/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.less,/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.css,/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config,/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.less,/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/less/theme.config.css

          Error in /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance/assets/node_modules/semantic-ui-less/definitions/modules/transition.less (line 19, column 0)
Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/sass-loader/dist/cjs.js!scss/invenio_previewer/bottom.scss:
    Entrypoint mini-css-extract-plugin = *
    [1] ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./scss/invenio_previewer/bottom.scss 1.11 KiB {0} [built]
        + 1 hidden module
Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/sass-loader/dist/cjs.js!scss/invenio_previewer/pdfjs.scss:
    Entrypoint mini-css-extract-plugin = *
     [2] ./js/invenio_previewer/pdfjs/web/images/texture.png 3.19 KiB {0} [built]
     [3] ./js/invenio_previewer/pdfjs/web/images/loading-small.png 9.68 KiB {0} [built]
     [4] ./js/invenio_previewer/pdfjs/web/images/toolbarButton-menuArrows.png 183 bytes {0} [built]
     [5] ./js/invenio_previewer/pdfjs/web/images/toolbarButton-sidebarToggle.png 339 bytes {0} [built]
     [6] ./js/invenio_previewer/pdfjs/web/images/toolbarButton-sidebarToggle-rtl.png 339 bytes {0} [built]
     [7] ./js/invenio_previewer/pdfjs/web/images/toolbarButton-secondaryToolbarToggle.png 363 bytes {0} [built]
     [8] ./js/invenio_previewer/pdfjs/web/images/toolbarButton-secondaryToolbarToggle-rtl.png 367 bytes {0} [built]
     [9] ./js/invenio_previewer/pdfjs/web/images/findbarButton-previous.png 307 bytes {0} [built]
    [10] ./js/invenio_previewer/pdfjs/web/images/findbarButton-previous-rtl.png 299 bytes {0} [built]
    [11] ./js/invenio_previewer/pdfjs/web/images/findbarButton-next.png 299 bytes {0} [built]
    [12] ./js/invenio_previewer/pdfjs/web/images/findbarButton-next-rtl.png 307 bytes {0} [built]
    [13] ./js/invenio_previewer/pdfjs/web/images/toolbarButton-pageUp.png 367 bytes {0} [built]
    [14] ./js/invenio_previewer/pdfjs/web/images/toolbarButton-pageUp-rtl.png 367 bytes {0} [built]
    [15] ./js/invenio_previewer/pdfjs/web/images/toolbarButton-pageDown.png 359 bytes {0} [built]
    [38] ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./scss/invenio_previewer/pdfjs.scss 90.9 KiB {0} [built]
        + 24 hidden modules
Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/sass-loader/dist/cjs.js!scss/invenio_previewer/prismjs.scss:
    Entrypoint mini-css-extract-plugin = *
    [1] ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./scss/invenio_previewer/prismjs.scss 5.87 KiB {0} [built]
        + 1 hidden module
Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/sass-loader/dist/cjs.js!scss/invenio_previewer/simple_image.scss:
    Entrypoint mini-css-extract-plugin = *
    [1] ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./scss/invenio_previewer/simple_image.scss 860 bytes {0} [built]
        + 1 hidden module
Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/sass-loader/dist/cjs.js!scss/invenio_previewer/txt.scss:
    Entrypoint mini-css-extract-plugin = *
    [1] ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./scss/invenio_previewer/txt.scss 501 bytes {0} [built]
        + 1 hidden module
Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/sass-loader/dist/cjs.js!scss/invenio_previewer/zip.scss:
    Entrypoint mini-css-extract-plugin = *
    [1] ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./scss/invenio_previewer/zip.scss 1.38 KiB {0} [built]
        + 1 hidden module
Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/sass-loader/dist/cjs.js!scss/invenio_theme/admin.scss:
    Entrypoint mini-css-extract-plugin = *
    [1] ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./scss/invenio_theme/admin.scss 312 KiB {0} [built]
        + 1 hidden module
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! invenio-assets@2.0.0 build: `NODE_PRESERVE_SYMLINKS=1 NODE_ENV=production webpack --config ./build/webpack.config.js`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the invenio-assets@2.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/stefano/.npm/_logs/2023-08-28T16_47_42_888Z-debug.log
Traceback (most recent call last):
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/bin/invenio", line 8, in <module>
    sys.exit(cli())
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/click/core.py", line 1719, in invoke
    rv.append(sub_ctx.command.invoke(sub_ctx))
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/flask/cli.py", line 357, in decorator
    return __ctx.invoke(f, *args, **kwargs)
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/flask_webpackext/cli.py", line 64, in build
    current_webpack.project.build(*args)
  File "/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/lib/python3.9/site-packages/pywebpack/helpers.py", line 48, in inner
    raise RuntimeError("Process exited with code {}".format(exit_code))
RuntimeError: Process exited with code 2
Failed to install dependencies.

The problem is that scheme.config is in a folder that got created with a strange path:

$ find /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/ -name theme.config
/home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/instance?[0 q/assets/less/theme.config

That folder got created along with a "normal" seeming folder:

$ ls -l /home/stefano/.local/share/virtualenvs/invenio11-test-W2x8TNwy/var/ 
total 8
drwxr-xr-x 4 stefano stefano 4096 Aug 28 12:45  instance
drwxr-xr-x 4 stefano stefano 4096 Aug 28 12:45 'instance'$'\033''[0 q'

It looks like the script is having some issues escaping path names.

Steps to Reproduce

In Archlinux + bash:

python3.9 -m venv venv
source venv/bin/activate
export PIPENV_IGNORE_VIRTUALENVS=1
pip install invenio-cli
invenio-cli init -c v11.0
<answer interactive questions; project folder is invenio11-test>
cd invenio11-test
invenio-cli install
<receive error>

Expected behavior

Invenio install should complete with out errors.

scossu commented 1 year ago

I retried this with a vanilla Archlinux docker image, installing just Python 3.9, Node 16, etc. It builds now. This means that something in my user startup scripts might be causing the problem. I'll try now with a new user on my native OS to confirm this is indeed the case.

Maybe I can focus further on the problematic bits so we can decide whether I have a non-standard setup or if it's a standard setup that's causing invenio-cli to misbehave.

scossu commented 1 year ago

Confirmed that a new user without customized .bashrc and .profile* works.

scossu commented 1 year ago

I found the problem, but I don't have a solution.

The lines here run a non-interactive IPython shell, which on exit leaves some junk characters. These characters are caused by a setting in my home folder:

 $ ipython --show-config
Python 3.9.17 (main, Aug 18 2023, 15:45:01) 
Type 'copyright', 'credits' or 'license' for more information
IPython 8.14.0 -- An enhanced Interactive Python. Type '?' for help.
Loaded config files:
  /home/stefano/.ipython/profile_default/ipython_config.py

TerminalInteractiveShell
  .editing_mode = 'vi'

this difference shows when I run

ipython -c "print('hello')" | less

in the same virtualenv. (without piping to less the junk won't show as it's not printable)

By removing the editing_mode = 'vi' option, the install script runs just fine. However, I don't want to change my config just to install a software package.

I tried passing the option --quick to IPython, which doesn't load my configuration, and that seems to work. But if I add the same option to the install script, for some reason it will still produce the wrong output.

Is it necessary to use IPython as the default shell to run non-interactive commands? Or is there another way to get the Flask app context within the install script?