bin/cubicweb-ctl.bat
author Laurent Peuch <cortex@worlddomination.be>
Mon, 22 Jul 2019 11:21:10 +0200
changeset 12696 eb83daa69495
parent 5499 2a5cc708c2a0
permissions -rw-r--r--
[cubicweb-ctl] respect sys.exit status code when aborting a command When exploring the stack of all calls to a cubicweb-ctl command, it has been discovered than on a KeyboardInterrupt and on a SystemExit exception the base class InstanceCommand (for commands that works on one instance) will always set the return code of cubicweb-ctl to 8: this mean that if another command do a `sys.exit(some_code)` the exit code will be ignored and overwritten by '8'. This behavior is not intuitive, apparently not documented and doesn't seems to have any justification. It also prevent commands from exciting with different return codes which could be a desired behavior in the situation of scripting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3116
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     1
@echo off
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     2
rem = """-*-Python-*- script
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     3
rem -------------------- DOS section --------------------
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     4
rem You could set PYTHONPATH or TK environment variables here
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     5
python -x "%~f0" %*
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     6
goto exit
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     7
 
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     8
"""
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     9
# -------------------- Python section --------------------
4096
871ff503c23e update sys.path at cubicweb startup
Administrator <>
parents: 3116
diff changeset
    10
import sys
5499
2a5cc708c2a0 fixed bug of non-normalized path under Windows, that broke the reload mechanism
egazoni
parents: 4096
diff changeset
    11
from os.path import join, dirname, normpath
2a5cc708c2a0 fixed bug of non-normalized path under Windows, that broke the reload mechanism
egazoni
parents: 4096
diff changeset
    12
sys.path.insert(0, normpath(join(dirname(__file__), '..', '..')))
3116
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    13
from cubicweb.cwctl import run
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    14
run(sys.argv[1:])
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    15
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    16
DosExitLabel = """
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    17
:exit
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    18
rem """
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    19
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    20