67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | #!/bin/bash | ||
|  | 
 | ||
|  | # Archive project: commit/push last changes to remote repo, remove unnecessary files, zip and move to archive folder | ||
|  | 
 | ||
|  | archive_dir="$HOME/Dropbox/Projects/_Archive" | ||
|  | 
 | ||
|  | 
 | ||
|  | # Common stuff | ||
|  | RED="$(tput setaf 1)" | ||
|  | CYAN="$(tput setaf 6)" | ||
|  | UNDERLINE="$(tput sgr 0 1)" | ||
|  | NOCOLOR="$(tput sgr0)" | ||
|  | function header() { echo -e "$UNDERLINE$CYAN$1$NOCOLOR\n"; } | ||
|  | function error() { echo -e "$UNDERLINE$RED$1$NOCOLOR"; } | ||
|  | 
 | ||
|  | 
 | ||
|  | project=`basename "$(pwd)"` | ||
|  | 
 | ||
|  | header "Archiving $project..." | ||
|  | 
 | ||
|  | # Has remote origin? | ||
|  | if [ ! $(git remote show) ]; then | ||
|  | 	error "Remote origin not found." | ||
|  | 	echo "Run either git-github or git-bitbucket." | ||
|  | 	echo | ||
|  | 	exit 1 | ||
|  | fi | ||
|  | 
 | ||
|  | # Dirty repo? | ||
|  | if [ "$(git status --porcelain 2>/dev/null)" ]; then | ||
|  | 	if [ "$1" == "--force" ]; then | ||
|  | 		echo "Commiting all changes..." | ||
|  | 		git add . | ||
|  | 		git commit -am "Last commit." | ||
|  | 		echo | ||
|  | 	else | ||
|  | 		error "Repo is dirty." | ||
|  | 		echo "Run archive-project --force to continue." | ||
|  | 		echo | ||
|  | 		git status | ||
|  | 		exit 1 | ||
|  | 	fi | ||
|  | fi | ||
|  | 
 | ||
|  | # Push to remove repo | ||
|  | echo "Pushing changes to remote repo..." | ||
|  | git push | ||
|  | echo | ||
|  | 
 | ||
|  | # Clean | ||
|  | echo "Cleaning..." | ||
|  | 
 | ||
|  | # Remove node_modules | ||
|  | find . -name node_modules -print0 | xargs -0 rm -rf | ||
|  | 
 | ||
|  | echo | ||
|  | 
 | ||
|  | # Zip | ||
|  | zip="$archive_dir/$(date +'%Y-%m')_$project.zip" | ||
|  | echo "Hardcore archiving action: $zip..." | ||
|  | mkdir -p "$archive_dir" | ||
|  | zip -rq $zip . | ||
|  | echo | ||
|  | 
 | ||
|  | echo "Project archived to $zip. You can delete this folder." | ||
|  | echo |