mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-10-30 23:47: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