kopia lustrzana https://github.com/simonw/datasette
				
				
				
			
		
			
				
	
	
		
			44 wiersze
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			44 wiersze
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/bash
 | |
| set -e
 | |
| # So the script fails if there are any errors
 | |
| 
 | |
| # Build the wheel
 | |
| python3 -m build
 | |
| 
 | |
| # Find name of wheel, strip off the dist/
 | |
| wheel=$(basename $(ls dist/*.whl))
 | |
| 
 | |
| # Create a blank index page
 | |
| echo '
 | |
| <script src="https://cdn.jsdelivr.net/pyodide/v0.20.0/full/pyodide.js"></script>
 | |
| ' > dist/index.html
 | |
| 
 | |
| # Run a server for that dist/ folder
 | |
| cd dist
 | |
| python3 -m http.server 8529 &
 | |
| cd ..
 | |
| 
 | |
| shot-scraper javascript http://localhost:8529/ "
 | |
| async () => {
 | |
|   let pyodide = await loadPyodide();
 | |
|   await pyodide.loadPackage(['micropip', 'ssl', 'setuptools']);
 | |
|   let output = await pyodide.runPythonAsync(\`
 | |
|     import micropip
 | |
|     await micropip.install('h11==0.12.0')
 | |
|     await micropip.install('http://localhost:8529/$wheel')
 | |
|     import ssl
 | |
|     import setuptools
 | |
|     from datasette.app import Datasette
 | |
|     ds = Datasette(memory=True, settings={'num_sql_threads': 0})
 | |
|     (await ds.client.get('/_memory.json?sql=select+55+as+itworks&_shape=array')).text
 | |
|   \`);
 | |
|   if (JSON.parse(output)[0].itworks != 55) {
 | |
|     throw 'Got ' + output + ', expected itworks: 55';
 | |
|   }
 | |
|   return 'Test passed!';
 | |
| }
 | |
| "
 | |
| 
 | |
| # Shut down the server
 | |
| pkill -f 'http.server 8529'
 |