Compare commits
	
		
			2 commits
		
	
	
		
			4c08915c56
			...
			6e769464cf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6e769464cf | |||
| 9ae590e097 | 
					 3 changed files with 124 additions and 5 deletions
				
			
		
							
								
								
									
										10
									
								
								meson.build
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								meson.build
									
										
									
									
									
								
							|  | @ -1,15 +1,17 @@ | ||||||
| # Project definition | # Project definition | ||||||
| project('zlevis-mkinitfs', license: 'GPL-2.0-only') | project('zlevis-mkinitfs', license: 'GPL-2.0-only', version: '3.12') | ||||||
| 
 | 
 | ||||||
| # Define mkinitfs features and data dir | # Define bin, mkinitfs features and data dir | ||||||
|  | bin_dir = join_paths(get_option('prefix'), get_option('bindir')) | ||||||
| features_dir = '/etc/mkinitfs/features.d/' | features_dir = '/etc/mkinitfs/features.d/' | ||||||
| data_dir = '/usr/share/mkinitfs/' | data_dir = '/usr/share/zlevis-mkinitfs/' | ||||||
| 
 | 
 | ||||||
| # Define features and data list | # Define features and data list | ||||||
| features = [] | features = [] | ||||||
| data = [] | data = [] | ||||||
| 
 | 
 | ||||||
| # Define subdir with features and subdir with data | # Define subdir with src, subdir with features and subdir with data | ||||||
|  | subdir('src') | ||||||
| subdir('features') | subdir('features') | ||||||
| subdir('data') | subdir('data') | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								src/meson.build
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/meson.build
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | # Find the script | ||||||
|  | script = find_program(meson.current_source_dir(), 'zlevis-mkinitfs.in') | ||||||
|  | 
 | ||||||
|  | # Test the script | ||||||
|  | test('zlevis-mkinitfs.in', script, args: '--summary') | ||||||
|  | 
 | ||||||
|  | # Configure script | ||||||
|  | configure_file( | ||||||
|  |   input: 'zlevis-mkinitfs.in', | ||||||
|  |   output: 'zlevis-mkinitfs', | ||||||
|  |   configuration: {'VERSION': meson.project_version()}, | ||||||
|  |   install: true, | ||||||
|  |   install_dir: bin_dir | ||||||
|  | ) | ||||||
							
								
								
									
										103
									
								
								src/zlevis-mkinitfs.in
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										103
									
								
								src/zlevis-mkinitfs.in
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,103 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | # Exit immediately if a command exits with a non-zero status | ||||||
|  | set -e | ||||||
|  | 
 | ||||||
|  | # Summary of the functionality of zlevis-mkinitfs | ||||||
|  | summary="A tool that implements zlevis into mkinitfs" | ||||||
|  | 
 | ||||||
|  | # Version of zlevis-mkinitfs | ||||||
|  | version="@VERSION@" | ||||||
|  | 
 | ||||||
|  | # Display summary | ||||||
|  | if [ "$1" = "--summary" ]; then | ||||||
|  |     echo "$summary" | ||||||
|  |     exit 0 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Display version | ||||||
|  | if [ "$1" = "--version" ]; then | ||||||
|  |     echo "$version" | ||||||
|  |     exit 0 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Function to display usage information of zlevis-mkinitfs | ||||||
|  | info() { | ||||||
|  |     exec >&2 | ||||||
|  |     echo "Usage: \"zlevis-mkinitfs {install|uninstall}\"" | ||||||
|  |     exit 2 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Define locations | ||||||
|  | loc_zlevis_mkinitfs="/usr/share/zlevis-mkinitfs" | ||||||
|  | loc_mkinitfs="/usr/share/mkinitfs" | ||||||
|  | loc_conf="/etc/mkinitfs/mkinitfs.conf" | ||||||
|  | 
 | ||||||
|  | # Function to install zlevis into mkinitfs | ||||||
|  | install() { | ||||||
|  |     if [ -f "${loc_zlevis_mkinitfs}/initramfs-init" ]; then | ||||||
|  |         continue | ||||||
|  |     else | ||||||
|  |         echo "cannot install zlevis-mkinitfs: zlevis-mkinitfs not present on system" | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     if [ -f "${loc_mkinitfs}/initramfs-init" ]; then | ||||||
|  |         continue | ||||||
|  |     else | ||||||
|  |         echo "cannot install zlevis-mkinitfs: mkinitfs not present on system" | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  |      | ||||||
|  |     cp "${loc_mkinitfs}/initramfs-init" "${loc_mkinitfs}/initramfs-init.bak" | ||||||
|  |     echo "cp: ${loc_mkinitfs}/initramfs-init to ${loc_mkinitfs}/initramfs-init.bak" | ||||||
|  |      | ||||||
|  |     cp "${loc_zlevis_mkinitfs}/initramfs-init" "${loc_mkinitfs}/initramfs-init" | ||||||
|  |     echo "cp: ${loc_zlevis_mkinitfs}/initramfs-init to ${loc_mkinitfs}/initramfs-init" | ||||||
|  |      | ||||||
|  |     if grep -q "^features=" "$loc_conf"; then | ||||||
|  |         if grep -q "^features=.*zlevis" "$loc_conf"; then | ||||||
|  |             echo "zlevis is already in features" | ||||||
|  |             exit 0 | ||||||
|  |         else | ||||||
|  |             sed -i '/^features=/s/"$/ zlevis"/' "$loc_conf" | ||||||
|  |             echo "zlevis has been added to features" | ||||||
|  |             exit 0 | ||||||
|  |         fi | ||||||
|  |     else | ||||||
|  |         echo "partially installed zlevis-mkinitfs: mkinitfs features does not exist" | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Function to uninstall zlevis from mkinitfs | ||||||
|  | uninstall() { | ||||||
|  |     if [ -f "${loc_mkinitfs}/initramfs-init.bak" ]; then | ||||||
|  |         mv "${loc_mkinitfs}/initramfs-init.bak" "${loc_mkinitfs}/initramfs-init" | ||||||
|  |         echo "mv: ${loc_mkinitfs}/initramfs-init.bak to ${loc_mkinitfs}/initramfs-init" | ||||||
|  |          | ||||||
|  |         if grep -q "^features=" "$loc_conf"; then | ||||||
|  |             if grep -q "^features=.*zlevis" "$loc_conf"; then | ||||||
|  |                 sed -i '/^features=/s/ zlevis//g' "${loc_conf}" | ||||||
|  |                 echo "zlevis has been removed from features" | ||||||
|  |                 exit 0 | ||||||
|  |             else | ||||||
|  |                 echo "cannot remove zlevis from features: zlevis not present" | ||||||
|  |                 exit 2 | ||||||
|  |             fi | ||||||
|  |         else | ||||||
|  |             echo "uninstalled zlevis-mkinitfs: mkinitfs features does not exist" | ||||||
|  |             exit 2 | ||||||
|  |         fi   | ||||||
|  |     else | ||||||
|  |         echo "cannot uninstall zlevis-mkinitfs: zlevis-mkinitfs not installed" | ||||||
|  |         exit 2 | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Determine the argument path and execute the relevant function | ||||||
|  | case "$1" in | ||||||
|  |     "install") install;; | ||||||
|  |     "uninstall") uninstall;; | ||||||
|  |     *) info;; | ||||||
|  | esac | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue