mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-04-28 21:03:45 +03:00
Minor patch (--update to work with #pip)
This commit is contained in:
parent
35862bf4c8
commit
40623e780a
|
@ -18,7 +18,7 @@ from lib.core.enums import OS
|
||||||
from thirdparty.six import unichr as _unichr
|
from thirdparty.six import unichr as _unichr
|
||||||
|
|
||||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
||||||
VERSION = "1.4.11.14"
|
VERSION = "1.4.11.15"
|
||||||
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
||||||
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
||||||
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
|
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
|
||||||
|
|
|
@ -14,6 +14,7 @@ import time
|
||||||
import zipfile
|
import zipfile
|
||||||
|
|
||||||
from lib.core.common import dataToStdout
|
from lib.core.common import dataToStdout
|
||||||
|
from lib.core.common import extractRegexResult
|
||||||
from lib.core.common import getLatestRevision
|
from lib.core.common import getLatestRevision
|
||||||
from lib.core.common import getSafeExString
|
from lib.core.common import getSafeExString
|
||||||
from lib.core.common import openFile
|
from lib.core.common import openFile
|
||||||
|
@ -27,6 +28,7 @@ from lib.core.revision import getRevisionNumber
|
||||||
from lib.core.settings import GIT_REPOSITORY
|
from lib.core.settings import GIT_REPOSITORY
|
||||||
from lib.core.settings import IS_WIN
|
from lib.core.settings import IS_WIN
|
||||||
from lib.core.settings import VERSION
|
from lib.core.settings import VERSION
|
||||||
|
from lib.core.settings import TYPE
|
||||||
from lib.core.settings import ZIPBALL_PAGE
|
from lib.core.settings import ZIPBALL_PAGE
|
||||||
from thirdparty.six.moves import urllib as _urllib
|
from thirdparty.six.moves import urllib as _urllib
|
||||||
|
|
||||||
|
@ -36,7 +38,34 @@ def update():
|
||||||
|
|
||||||
success = False
|
success = False
|
||||||
|
|
||||||
if not os.path.exists(os.path.join(paths.SQLMAP_ROOT_PATH, ".git")):
|
if TYPE == "pip":
|
||||||
|
infoMsg = "updating sqlmap to the latest stable version from the "
|
||||||
|
infoMsg += "PyPI repository"
|
||||||
|
logger.info(infoMsg)
|
||||||
|
|
||||||
|
debugMsg = "sqlmap will try to update itself using 'pip' command"
|
||||||
|
logger.debug(debugMsg)
|
||||||
|
|
||||||
|
dataToStdout("\r[%s] [INFO] update in progress" % time.strftime("%X"))
|
||||||
|
|
||||||
|
output = ""
|
||||||
|
try:
|
||||||
|
process = subprocess.Popen("pip install -U sqlmap", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=paths.SQLMAP_ROOT_PATH)
|
||||||
|
pollProcess(process, True)
|
||||||
|
output, _ = process.communicate()
|
||||||
|
success = not process.returncode
|
||||||
|
except Exception as ex:
|
||||||
|
success = False
|
||||||
|
output = getSafeExString(ex)
|
||||||
|
finally:
|
||||||
|
output = getText(output)
|
||||||
|
|
||||||
|
if success:
|
||||||
|
logger.info("%s the latest revision '%s'" % ("already at" if "already up-to-date" in output else "updated to", extractRegexResult(r"\binstalled sqlmap-(?P<result>\d+\.\d+\.\d+)", output) or extractRegexResult(r"\((?P<result>\d+\.\d+\.\d+)\)", output)))
|
||||||
|
else:
|
||||||
|
logger.error("update could not be completed ('%s')" % re.sub(r"[^a-z0-9:/\\]+", " ", output).strip())
|
||||||
|
|
||||||
|
elif not os.path.exists(os.path.join(paths.SQLMAP_ROOT_PATH, ".git")):
|
||||||
warnMsg = "not a git repository. It is recommended to clone the 'sqlmapproject/sqlmap' repository "
|
warnMsg = "not a git repository. It is recommended to clone the 'sqlmapproject/sqlmap' repository "
|
||||||
warnMsg += "from GitHub (e.g. 'git clone --depth 1 %s sqlmap')" % GIT_REPOSITORY
|
warnMsg += "from GitHub (e.g. 'git clone --depth 1 %s sqlmap')" % GIT_REPOSITORY
|
||||||
logger.warn(warnMsg)
|
logger.warn(warnMsg)
|
||||||
|
@ -95,6 +124,7 @@ def update():
|
||||||
os.chmod(os.path.join(directory, "sqlmap.py"), attrs)
|
os.chmod(os.path.join(directory, "sqlmap.py"), attrs)
|
||||||
except OSError:
|
except OSError:
|
||||||
logger.warning("could not set the file attributes of '%s'" % os.path.join(directory, "sqlmap.py"))
|
logger.warning("could not set the file attributes of '%s'" % os.path.join(directory, "sqlmap.py"))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
infoMsg = "updating sqlmap to the latest development revision from the "
|
infoMsg = "updating sqlmap to the latest development revision from the "
|
||||||
infoMsg += "GitHub repository"
|
infoMsg += "GitHub repository"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user