mirror of
				https://github.com/TheLocehiliosan/yadm
				synced 2025-06-13 13:03:58 +00:00 
			
		
		
		
	Add -Y/--yadm-dir options
				
					
				
			An alternate yadm directory may be specified for every command. This changes where the repository, configurations, and encrypted files are located.
This commit is contained in:
		
							parent
							
								
									431f149730
								
							
						
					
					
						commit
						a60ed8b655
					
				
							
								
								
									
										51
									
								
								yadm
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								yadm
									
									
									
									
									
								
							| @ -20,17 +20,14 @@ VERSION=1.03 | |||||||
| YADM_WORK="$HOME" | YADM_WORK="$HOME" | ||||||
| YADM_DIR="$HOME/.yadm" | YADM_DIR="$HOME/.yadm" | ||||||
| 
 | 
 | ||||||
| YADM_REPO="$YADM_DIR/repo.git" | YADM_REPO="repo.git" | ||||||
| YADM_CONFIG="$YADM_DIR/config" | YADM_CONFIG="config" | ||||||
| YADM_ENCRYPT="$YADM_DIR/encrypt" | YADM_ENCRYPT="encrypt" | ||||||
| YADM_ARCHIVE="$YADM_DIR/files.gpg" | YADM_ARCHIVE="files.gpg" | ||||||
| 
 | 
 | ||||||
| #; flag when something may have changes (which prompts auto actions to be performed) | #; flag when something may have changes (which prompts auto actions to be performed) | ||||||
| CHANGES_POSSIBLE=0 | CHANGES_POSSIBLE=0 | ||||||
| 
 | 
 | ||||||
| #; use the yadm repo for all git operations |  | ||||||
| export GIT_DIR="$YADM_REPO" |  | ||||||
| 
 |  | ||||||
| function main() { | function main() { | ||||||
| 
 | 
 | ||||||
|   require_git |   require_git | ||||||
| @ -387,6 +384,42 @@ function version() { | |||||||
| 
 | 
 | ||||||
| #; ****** Utility Functions ****** | #; ****** Utility Functions ****** | ||||||
| 
 | 
 | ||||||
|  | function process_global_args() { | ||||||
|  | 
 | ||||||
|  |   #; global arguments are removed before the main processing is done | ||||||
|  |   MAIN_ARGS=() | ||||||
|  |   while [[ $# > 0 ]] ; do | ||||||
|  |     key="$1" | ||||||
|  |     case $key in | ||||||
|  |       -Y|--yadm-dir) #; override the standard YADM_DIR | ||||||
|  |         if [[ ! "$2" =~ ^/ ]] ; then | ||||||
|  |           error_out "You must specify a fully qualified yadm directory" | ||||||
|  |         fi | ||||||
|  |         YADM_DIR="$2" | ||||||
|  |         shift | ||||||
|  |       ;; | ||||||
|  |       *) #; main arguments are kept intact | ||||||
|  |         MAIN_ARGS+=("$1") | ||||||
|  |       ;; | ||||||
|  |     esac | ||||||
|  |     shift | ||||||
|  |   done | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function configure_paths() { | ||||||
|  | 
 | ||||||
|  |   #; change all paths to be relative to YADM_DIR | ||||||
|  |   YADM_REPO="$YADM_DIR/$YADM_REPO" | ||||||
|  |   YADM_CONFIG="$YADM_DIR/$YADM_CONFIG" | ||||||
|  |   YADM_ENCRYPT="$YADM_DIR/$YADM_ENCRYPT" | ||||||
|  |   YADM_ARCHIVE="$YADM_DIR/$YADM_ARCHIVE" | ||||||
|  | 
 | ||||||
|  |   #; use the yadm repo for all git operations | ||||||
|  |   export GIT_DIR="$YADM_REPO" | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function configure_repo() { | function configure_repo() { | ||||||
| 
 | 
 | ||||||
|   debug "Configuring new repo" |   debug "Configuring new repo" | ||||||
| @ -464,4 +497,6 @@ function require_repo() { | |||||||
|   [ -d "$YADM_REPO" ] || error_out "Git repo does not exist. did you forget to run 'init' or 'clone'?" |   [ -d "$YADM_REPO" ] || error_out "Git repo does not exist. did you forget to run 'init' or 'clone'?" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| main "$@" | process_global_args "$@" | ||||||
|  | configure_paths | ||||||
|  | main "${MAIN_ARGS[@]}" | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user