Compare commits
	
		
			14 Commits
		
	
	
		
			6455b904c4
			...
			1.1.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 8b23dc96a3 | |||
| 7b3de6cef0 | |||
| 2c209fd7a0 | |||
| b1306a73b4 | |||
| e2789d200b | |||
| eddbe307c2 | |||
| 3e22f4ebbd | |||
| cdc17a329b | |||
| fd49c9e953 | |||
| eeaee974bd | |||
| 0df0a8dd6e | |||
| aa97ad4c20 | |||
| 53f86fa804 | |||
| fc0983dbb4 | 
							
								
								
									
										160
									
								
								pman.sh
									
									
									
									
									
								
							
							
						
						
									
										160
									
								
								pman.sh
									
									
									
									
									
								
							| @@ -1,52 +1,146 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
|  |  | ||||||
| # Store the first command line argument in the variable "command" and shift the rest | # Store the first command line argument in the variable "command" and shift the rest | ||||||
| command="$1" | command_args="$1" | ||||||
| shift | shift | ||||||
|  | command="" | ||||||
|  | more_arguments=false | ||||||
|  | su_needed=false | ||||||
|  |  | ||||||
| # Evaluate the command | # If sudo is needed and necessary (and installed), prepend it, if not installed throw error | ||||||
| if [ "$command" = "search" ]; then | check_sudo() { | ||||||
|   command="pacman" |   if [ "$su_needed" = "true" ] && [ "$UID" != 0 ]; then | ||||||
|   command_args="-Ss" |     if command -v "sudo" &>/dev/null; then | ||||||
| elif [ "$command" = "update" ]; then |       command="sudo $command" | ||||||
|   command="pacman" |     else | ||||||
|   command_args="-Sy" |       echo "sudo command needed but not found" > /dev/stderr | ||||||
|   su_needed=true |       exit 1 | ||||||
| elif [ "$command" = "upgradable" ]; then |     fi | ||||||
|   command="pacman" |   fi | ||||||
|   command_args="-Qu" | } | ||||||
| elif [ "$command" = "upgrade" ]; then |  | ||||||
|   command="pacman" | # Execute the command | ||||||
|   command_args="-Syu" | execute_command() { | ||||||
|   su_needed=true |   check_sudo | ||||||
| elif [ "$command" = "install" ]; then |   $command $command_args "${@}" | ||||||
|   command="pacman" | } | ||||||
|   command_args="-S" |  | ||||||
|   su_needed=true | # Check if yay (aur) | ||||||
| elif [ "$command" = "provides" ]; then | if [ "$command_args" = "yay" ] || [ "$command_args" = "aur" ]; then | ||||||
|   command="pacman" |   command="yay" | ||||||
|   command_args="-F" |   command_args="$1" | ||||||
| elif [ "$command" = "config" ]; then |   shift | ||||||
|  |   more_arguments=true | ||||||
|  | # Check if config | ||||||
|  | elif [ "$command_args" = "config" ]; then | ||||||
|   command="nano" |   command="nano" | ||||||
|   command_args="/etc/pacman.conf" |   command_args="/etc/pacman.conf" | ||||||
|   su_needed=true |   su_needed=true | ||||||
| else | fi | ||||||
|   echo "Invalid command: \"$command\"" |  | ||||||
|  | # If command is empty, command is pacman | ||||||
|  | if [ "$command" = "" ]; then | ||||||
|  |   command="pacman" | ||||||
|  |   more_arguments=true | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # Evaluate the command arguments | ||||||
|  | case "$command_args" in | ||||||
|  |   "search") | ||||||
|  |     command_args="-Ss" | ||||||
|  |     ;; | ||||||
|  |   "info") | ||||||
|  |     command_args="-Si" | ||||||
|  |     ;; | ||||||
|  |   "localinfo") | ||||||
|  |     command_args="-Qi" | ||||||
|  |     ;; | ||||||
|  |   "provides") | ||||||
|  |     # Update the cache | ||||||
|  |     su_needed=true | ||||||
|  |     command_args="-Fy" | ||||||
|  |     execute_command "${@}" | ||||||
|  |  | ||||||
|  |     su_needed=false | ||||||
|  |     command_args="-F" | ||||||
|  |     ;; | ||||||
|  |   "providefiles") | ||||||
|  |     # Update the cache | ||||||
|  |     su_needed=true | ||||||
|  |     command_args="-Fy" | ||||||
|  |     execute_command "${@}" | ||||||
|  |  | ||||||
|  |     su_needed=false | ||||||
|  |     command_args="-Fl" | ||||||
|  |     ;; | ||||||
|  |   "installed") | ||||||
|  |     command_args="-Q" | ||||||
|  |     ;; | ||||||
|  |   "install") | ||||||
|  |     command_args="-S" | ||||||
|  |     if [ "$command" = "pacman" ]; then | ||||||
|  |       su_needed=true | ||||||
|  |     fi | ||||||
|  |     ;; | ||||||
|  |   "update") | ||||||
|  |     command_args="-Sy" | ||||||
|  |     if [ "$command" = "pacman" ]; then | ||||||
|  |       su_needed=true | ||||||
|  |     fi | ||||||
|  |     ;; | ||||||
|  |   "upgradable") | ||||||
|  |     command_args="-Qu" | ||||||
|  |     ;; | ||||||
|  |   "upgrade") | ||||||
|  |     command_args="-Syu" | ||||||
|  |     if [ "$command" = "pacman" ]; then | ||||||
|  |       su_needed=true | ||||||
|  |     fi | ||||||
|  |     ;; | ||||||
|  |   "remove") | ||||||
|  |     command_args="-Rs" | ||||||
|  |     if [ "$command" = "pacman" ]; then | ||||||
|  |       su_needed=true | ||||||
|  |     fi | ||||||
|  |     ;; | ||||||
|  |   "purge") | ||||||
|  |     command_args="-Rns" | ||||||
|  |     if [ "$command" = "pacman" ]; then | ||||||
|  |       su_needed=true | ||||||
|  |     fi | ||||||
|  |     ;; | ||||||
|  |   "clean") | ||||||
|  |     command_args="-Scc" | ||||||
|  |     if [ "$command" = "pacman" ]; then | ||||||
|  |       su_needed=true | ||||||
|  |     fi | ||||||
|  |     ;; | ||||||
|  |   *) | ||||||
|  |     if [ "$more_arguments" = "true" ]; then | ||||||
|  |       echo "Invalid command: \"$command $command_args\"" | ||||||
|       echo |       echo | ||||||
|       echo "Usage: pman <command> [args...]" |       echo "Usage: pman <command> [args...]" | ||||||
|       echo "Available commands:" |       echo "Available commands:" | ||||||
|  |       echo "  yay (aur)    - yay              | invoke yay " | ||||||
|  |       echo "               (aur packages - all the normal operations except config are available)" | ||||||
|  |       echo "  aur (yay)    - yay              | same as \"yay\"" | ||||||
|       echo "  search       - pacman -Ss       | search packages" |       echo "  search       - pacman -Ss       | search packages" | ||||||
|  |       echo "  info         - pacman -Si       | show package information" | ||||||
|  |       echo "  localinfo    - pacman -Qi       | show local package information" | ||||||
|  |       echo "  provides     - pacman -F        | list packages that provide file" | ||||||
|  |       echo "  providefiles - pacman -Fl       | list files provided by package" | ||||||
|  |       echo "  installed    - pacman -Q        | list installed packages" | ||||||
|  |       echo "  install      - pacman -S        | install packages" | ||||||
|       echo "  update       - pacman -Sy       | updates the repositories" |       echo "  update       - pacman -Sy       | updates the repositories" | ||||||
|       echo "  upgradable   - pacman -Qu       | list available upgrades" |       echo "  upgradable   - pacman -Qu       | list available upgrades" | ||||||
|       echo "  upgrade      - pacman -Syu      | upgrades your system" |       echo "  upgrade      - pacman -Syu      | upgrades your system" | ||||||
|   echo "  provides   - pacman -F        | list packages that provide file" |       echo "  remove       - pacman -Rs       | remove packages & dependencies" | ||||||
|  |       echo "  purge        - pacman -Rns      | remove packages, dependencies & conf" | ||||||
|  |       echo "  clean        - pacman -Scc      | remove all package files & trash" | ||||||
|       echo "  config       - /etc/pacman.conf | edits pacman configuration" |       echo "  config       - /etc/pacman.conf | edits pacman configuration" | ||||||
|       exit 1 |       exit 1 | ||||||
|     fi |     fi | ||||||
|  |     ;; | ||||||
|  | esac | ||||||
|  |  | ||||||
| # If sudo is needed and necessary (and installed), prepend it | execute_command "${@}" | ||||||
| if [ "$su_needed" = "true" ] && [ "$UID" != 0 ] && command -v "sudo" &>/dev/null; then |  | ||||||
|   sudo $command $command_args "${@}" |  | ||||||
| else |  | ||||||
|   $command $command_args "${@}" |  | ||||||
| fi |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user