Add FreeBSD support
Modified explorer/gshadow to do nothing on FreeBSD (unsupported command) Modified gencode-remote to use short options (--long not supported in FreeBSD)
This commit is contained in:
		
					parent
					
						
							
								37eabffd9c
							
						
					
				
			
			
				commit
				
					
						f6bd5290b3
					
				
			
		
					 2 changed files with 43 additions and 5 deletions
				
			
		| 
						 | 
					@ -23,6 +23,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
name=$__object_id
 | 
					name=$__object_id
 | 
				
			||||||
os_version="$($__explorer/os_version)"
 | 
					os_version="$($__explorer/os_version)"
 | 
				
			||||||
 | 
					os="$($__explorer/os)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$os" = "freebsd" ]; then
 | 
				
			||||||
 | 
					   echo "FreeBSD does not have getent gshadow"
 | 
				
			||||||
 | 
					   exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os_version" in
 | 
					case "$os_version" in
 | 
				
			||||||
   "Red Hat Enterprise Linux Server release "[45]*|"CentOS release "[45]*)
 | 
					   "Red Hat Enterprise Linux Server release "[45]*|"CentOS release "[45]*)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
name="$__object_id"
 | 
					name="$__object_id"
 | 
				
			||||||
os_version="$(cat "$__global/explorer/os_version")"
 | 
					os_version="$(cat "$__global/explorer/os_version")"
 | 
				
			||||||
 | 
					os="$(cat "$__global/explorer/os")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cd "$__object/parameter"
 | 
					cd "$__object/parameter"
 | 
				
			||||||
if grep -q "^${name}:" "$__object/explorer/group"; then
 | 
					if grep -q "^${name}:" "$__object/explorer/group"; then
 | 
				
			||||||
| 
						 | 
					@ -36,6 +37,10 @@ if grep -q "^${name}:" "$__object/explorer/group"; then
 | 
				
			||||||
      case "$property" in
 | 
					      case "$property" in
 | 
				
			||||||
         password)
 | 
					         password)
 | 
				
			||||||
            current_value="$(awk -F: '{ print $2 }' < "$__object/explorer/gshadow")"
 | 
					            current_value="$(awk -F: '{ print $2 }' < "$__object/explorer/gshadow")"
 | 
				
			||||||
 | 
					            if [ "$os" = "freebsd" ]; then
 | 
				
			||||||
 | 
					               echo "group/$name: FreeBSD doesn't support password modification" >&2
 | 
				
			||||||
 | 
					               exit 1
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
            case "$os_version" in
 | 
					            case "$os_version" in
 | 
				
			||||||
               "Red Hat Enterprise Linux Server release "[45]*|"CentOS release "[45]*)
 | 
					               "Red Hat Enterprise Linux Server release "[45]*|"CentOS release "[45]*)
 | 
				
			||||||
                  # TODO: Use gpasswd?  Need to fix gshadow explorer first.
 | 
					                  # TODO: Use gpasswd?  Need to fix gshadow explorer first.
 | 
				
			||||||
| 
						 | 
					@ -57,15 +62,42 @@ if grep -q "^${name}:" "$__object/explorer/group"; then
 | 
				
			||||||
   done
 | 
					   done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   if [ $# -gt 0 ]; then
 | 
					   if [ $# -gt 0 ]; then
 | 
				
			||||||
      echo groupmod "$@" "$name"
 | 
					      case $os in
 | 
				
			||||||
   else
 | 
					         freebsd)
 | 
				
			||||||
      true
 | 
					            echo pw group mod "$@" "$name"
 | 
				
			||||||
 | 
					            ;;
 | 
				
			||||||
 | 
					         *)
 | 
				
			||||||
 | 
					            echo groupmod "$@" "$name"
 | 
				
			||||||
 | 
					            ;;
 | 
				
			||||||
 | 
					      esac
 | 
				
			||||||
   fi
 | 
					   fi
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
   for property in $(ls .); do
 | 
					   for property in $(ls .); do
 | 
				
			||||||
      new_value="$(cat "$property")"
 | 
					      new_value="$(cat "$property")"
 | 
				
			||||||
      set -- "$@" "--$property" \"$new_value\"
 | 
					      if [ "$os" = "freebsd" ]; then
 | 
				
			||||||
 | 
					         case $property in
 | 
				
			||||||
 | 
					            gid)
 | 
				
			||||||
 | 
					               proparg="-g"
 | 
				
			||||||
 | 
					               ;;
 | 
				
			||||||
 | 
					            *)
 | 
				
			||||||
 | 
					               echo "Unknown property: $property" >&2
 | 
				
			||||||
 | 
					               exit 1
 | 
				
			||||||
 | 
					               ;;
 | 
				
			||||||
 | 
					         esac
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					         proparg="--$property"
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      set -- "$@" "$proparg" \"$new_value\"
 | 
				
			||||||
   done
 | 
					   done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   echo groupadd "$@" "$name"
 | 
					   case $os in
 | 
				
			||||||
 | 
					      freebsd)
 | 
				
			||||||
 | 
					         echo pw group add "$@" "$name"
 | 
				
			||||||
 | 
					         ;;
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					         echo groupadd "$@" "$name"
 | 
				
			||||||
 | 
					         ;;
 | 
				
			||||||
 | 
					   esac
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue