add hatch layout for direnv
This commit is contained in:
		
					parent
					
						
							
								8b8d287a1c
							
						
					
				
			
			
				commit
				
					
						7e2d9ee69d
					
				
			
		
					 1 changed files with 29 additions and 0 deletions
				
			
		
							
								
								
									
										29
									
								
								dot_config/direnv/direnvrc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								dot_config/direnv/direnvrc
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
layout_hatch() {
 | 
			
		||||
    if [[ ! -f "pyproject.toml" ]]; then
 | 
			
		||||
        if [[ ! -f "setup.py" ]]; then
 | 
			
		||||
            local tmpdir
 | 
			
		||||
            log_status "No pyproject.toml or setup.py found. Executing \`hatch new\` to create a new project."
 | 
			
		||||
            PROJECT_NAME=$(basename $PWD)
 | 
			
		||||
            tmpdir="$(mktemp -d)"
 | 
			
		||||
            hatch new $PROJECT_NAME $tmpdir > /dev/null
 | 
			
		||||
            cp -a --no-clobber $tmpdir/* . && rm -rf $tmpdir
 | 
			
		||||
        else
 | 
			
		||||
            # I haven't yet seen a case where migrating from an existing `setup.py` works, but I'm sure there are some.
 | 
			
		||||
            log_status "No pyproject.toml found. Executing \`hatch new --init\` to migrate from setuptools."
 | 
			
		||||
            hatch new --init || log_error "Failed to migrate from setuptools. Please fix and run \`hatch new --init\` manually." && return 1
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    HATCH_ENV=${HATCH_ENV_ACTIVE:-default}
 | 
			
		||||
    # We need this to error out if the env doesn't exist in the pyproject.toml file.
 | 
			
		||||
    VIRTUAL_ENV=$(hatch env find $HATCH_ENV)
 | 
			
		||||
 | 
			
		||||
    if [[ ! -d $VIRTUAL_ENV ]]; then
 | 
			
		||||
        log_status "No virtual environment exists. Executing \`hatch env create\` to create one."
 | 
			
		||||
        hatch env create $HATCH_ENV
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    PATH_add "$VIRTUAL_ENV/bin"
 | 
			
		||||
    export HATCH_ENV_ACTIVE=$HATCH_ENV
 | 
			
		||||
    export VIRTUAL_ENV
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue