Make the command line tool more robust
The CLI tool is robust in the sense that it can handle the execution of init/build/run/gdb commands in any order (as long as the commands are invoked sequentially, not concurrently).
This commit is contained in:
		
							parent
							
								
									a7400ca6dc
								
							
						
					
					
						commit
						60b1e2c28d
					
				
							
								
								
									
										35
									
								
								tools/occlum
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										35
									
								
								tools/occlum
									
									
									
									
									
								
							| @ -76,10 +76,30 @@ parse_occlum_user_space_size() { | |||||||
|     numfmt --from=iec ${size_with_unit::-1} |     numfmt --from=iec ${size_with_unit::-1} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | check_has_init() { | ||||||
|  |     if [ ! -d "$context_dir"  ]; then | ||||||
|  |         echo "Error: the current working directory is not initialized as an Occlum context. Need to run \"occlum init\" first." | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | check_has_built() { | ||||||
|  |     check_has_init | ||||||
|  | 
 | ||||||
|  |     if [ ! -d "$context_dir/run/mount/root"  ]; then | ||||||
|  |         echo "Error: the Occlum image and enclave are not built yet. Need to run \"occlum build\" first." | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| cmd_init() { | cmd_init() { | ||||||
|     cd "$working_dir" |     if [ -d "$context_dir"  ]; then | ||||||
|     mkdir -p .occlum |         echo "Error: the current working directory has been initialized as an Occlum context" | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  |     mkdir "$context_dir" | ||||||
|  | 
 | ||||||
|     cd "$context_dir" |     cd "$context_dir" | ||||||
|     echo "initialized" > status |     echo "initialized" > status | ||||||
| 
 | 
 | ||||||
| @ -108,6 +128,8 @@ cmd_init() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| cmd_build() { | cmd_build() { | ||||||
|  |     check_has_init | ||||||
|  | 
 | ||||||
|     build_dir=build |     build_dir=build | ||||||
| 
 | 
 | ||||||
|     while [ -n "$1" ]; do |     while [ -n "$1" ]; do | ||||||
| @ -135,6 +157,7 @@ cmd_build() { | |||||||
|     echo "building" > status |     echo "building" > status | ||||||
| 
 | 
 | ||||||
|     rm -rf build |     rm -rf build | ||||||
|  |     rm -rf run | ||||||
| 
 | 
 | ||||||
|     mkdir -p build/bin |     mkdir -p build/bin | ||||||
|     cp "$occlum_dir/$build_dir/bin/occlum-run" build/bin/ |     cp "$occlum_dir/$build_dir/bin/occlum-run" build/bin/ | ||||||
| @ -188,18 +211,20 @@ cmd_build() { | |||||||
|     cd "$context_dir" |     cd "$context_dir" | ||||||
|     echo "built" > status |     echo "built" > status | ||||||
| 
 | 
 | ||||||
|     mkdir -p "$context_dir/run/mount/root" |  | ||||||
| 
 |  | ||||||
|     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then |     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then | ||||||
|         echo "SIM" > .sgx_mode |         echo "SIM" > .sgx_mode | ||||||
|     else |     else | ||||||
|         echo "HW" > .sgx_mode |         echo "HW" > .sgx_mode | ||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
|  |     mkdir -p "$context_dir/run/mount/root" | ||||||
|  | 
 | ||||||
|     echo "Built the Occlum image and enclave successfully" |     echo "Built the Occlum image and enclave successfully" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| cmd_run() { | cmd_run() { | ||||||
|  |     check_has_built | ||||||
|  | 
 | ||||||
|     SGX_MODE=$(cat $context_dir/.sgx_mode) |     SGX_MODE=$(cat $context_dir/.sgx_mode) | ||||||
|     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then |     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then | ||||||
|         export LD_LIBRARY_PATH="$context_dir/build/lib:$SGX_SDK/sdk_libs/" |         export LD_LIBRARY_PATH="$context_dir/build/lib:$SGX_SDK/sdk_libs/" | ||||||
| @ -216,6 +241,8 @@ cmd_run() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| cmd_gdb() { | cmd_gdb() { | ||||||
|  |     check_has_built | ||||||
|  | 
 | ||||||
|     SGX_MODE=$(cat $context_dir/.sgx_mode) |     SGX_MODE=$(cat $context_dir/.sgx_mode) | ||||||
|     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then |     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then | ||||||
|         export LD_LIBRARY_PATH="$context_dir/build/lib:$SGX_SDK/sdk_libs/" |         export LD_LIBRARY_PATH="$context_dir/build/lib:$SGX_SDK/sdk_libs/" | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user