Merge pull request #145 from YunoHost/misc-enh
Recommend ynh_add_config, misc cleanup/notes
This commit is contained in:
		
						commit
						611e69cd71
					
				@ -216,18 +216,10 @@ ynh_add_systemd_config
 | 
				
			|||||||
### so we're going to use curl to automatically fill the fields and submit the
 | 
					### so we're going to use curl to automatically fill the fields and submit the
 | 
				
			||||||
### forms.
 | 
					### forms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set right permissions for curl install
 | 
					 | 
				
			||||||
chown -R $app: $final_path
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set the app as temporarily public for curl call
 | 
					# Set the app as temporarily public for curl call
 | 
				
			||||||
ynh_script_progression --message="Configuring SSOwat..." --time --weight=1
 | 
					ynh_script_progression --message="Configuring SSOwat..." --time --weight=1
 | 
				
			||||||
# Making the app public for curl
 | 
					# Making the app public for curl
 | 
				
			||||||
ynh_permission_update --permission="main" --add="visitors"
 | 
					ynh_permission_update --permission="main" --add="visitors"
 | 
				
			||||||
# Reload SSOwat config
 | 
					 | 
				
			||||||
yunohost app ssowatconf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Reload NGINX
 | 
					 | 
				
			||||||
ynh_systemd_action --service_name=nginx --action=reload
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Installation with curl
 | 
					# Installation with curl
 | 
				
			||||||
ynh_script_progression --message="Finalizing installation..." --time --weight=1
 | 
					ynh_script_progression --message="Finalizing installation..." --time --weight=1
 | 
				
			||||||
@ -237,24 +229,29 @@ ynh_local_curl "/INSTALL_PATH" "key1=value1" "key2=value2" "key3=value3"
 | 
				
			|||||||
ynh_permission_update --permission="main" --remove="visitors"
 | 
					ynh_permission_update --permission="main" --remove="visitors"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#=================================================
 | 
					#=================================================
 | 
				
			||||||
# MODIFY A CONFIG FILE
 | 
					# ADD A CONFIGURATION
 | 
				
			||||||
#=================================================
 | 
					#=================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `ynh_replace_string` is used to replace a string in a file.
 | 
					### You can add specific configuration files.
 | 
				
			||||||
### (It's compatible with sed regular expressions syntax)
 | 
					###
 | 
				
			||||||
 | 
					### Typically, put your template conf file in ../conf/your_config_file
 | 
				
			||||||
 | 
					### The template may contain strings such as __FOO__ or __FOO_BAR__,
 | 
				
			||||||
 | 
					### which will automatically be replaced by the values of $foo and $foo_bar
 | 
				
			||||||
 | 
					###
 | 
				
			||||||
 | 
					### ynh_add_config will also keep track of the config file's checksum,
 | 
				
			||||||
 | 
					### which later during upgrade may allow to automatically backup the config file
 | 
				
			||||||
 | 
					### if it's found that the file was manually modified
 | 
				
			||||||
 | 
					###
 | 
				
			||||||
 | 
					### Check the documentation of `ynh_add_config` for more info.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$final_path/CONFIG_FILE"
 | 
					ynh_add_config --template="some_config_file" --destination="$final_path/some_config_file"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#=================================================
 | 
					### For more complex cases where you want to replace stuff using regexes,
 | 
				
			||||||
# STORE THE CONFIG FILE CHECKSUM
 | 
					### you shoud rely on ynh_replace_string (which is basically a wrapper for sed)
 | 
				
			||||||
#=================================================
 | 
					### When doing so, you also need to manually call ynh_store_file_checksum
 | 
				
			||||||
 | 
					###
 | 
				
			||||||
### `ynh_store_file_checksum` is used to store the checksum of a file.
 | 
					### ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$final_path/some_config_file"
 | 
				
			||||||
### That way, during the upgrade script, by using `ynh_backup_if_checksum_is_different`,
 | 
					### ynh_store_file_checksum --file="$final_path/some_config_file"
 | 
				
			||||||
### you can make a backup of this file before modifying it again if the admin had modified it.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Calculate and store the config file checksum into the app settings
 | 
					 | 
				
			||||||
ynh_store_file_checksum --file="$final_path/CONFIG_FILE"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#=================================================
 | 
					#=================================================
 | 
				
			||||||
# GENERIC FINALIZATION
 | 
					# GENERIC FINALIZATION
 | 
				
			||||||
@ -354,6 +351,9 @@ then
 | 
				
			|||||||
	ynh_permission_update --permission="main" --add="visitors"
 | 
						ynh_permission_update --permission="main" --add="visitors"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### N.B. : the following extra permissions only make sense if your app
 | 
				
			||||||
 | 
					### does have for example an admin interface or an api.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Only the admin can access the admin panel of the app (if the app has an admin panel)
 | 
					# Only the admin can access the admin panel of the app (if the app has an admin panel)
 | 
				
			||||||
ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin
 | 
					ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -159,17 +159,22 @@ ynh_script_progression --message="Upgrading systemd configuration..." --time --w
 | 
				
			|||||||
ynh_add_systemd_config
 | 
					ynh_add_systemd_config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#=================================================
 | 
					#=================================================
 | 
				
			||||||
# MODIFY A CONFIG FILE
 | 
					# UPDATE A CONFIG FILE
 | 
				
			||||||
#=================================================
 | 
					#=================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Verify the checksum of a file, stored by `ynh_store_file_checksum` in the install script.
 | 
					### Same as during install
 | 
				
			||||||
### And create a backup of this file if the checksum is different. So the file will be backed up if the admin had modified it.
 | 
					###
 | 
				
			||||||
ynh_backup_if_checksum_is_different --file="$final_path/CONFIG_FILE"
 | 
					### The file will automatically be backed-up if it's found to be manually modified (because
 | 
				
			||||||
 | 
					### ynh_add_config keeps track of the file's checksum)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$final_path/CONFIG_FILE"
 | 
					ynh_add_config --template="some_config_file" --destination="$final_path/some_config_file"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Recalculate and store the checksum of the file for the next upgrade.
 | 
					### For more complex cases where you want to replace stuff using regexes,
 | 
				
			||||||
ynh_store_file_checksum --file="$final_path/CONFIG_FILE"
 | 
					### you shoud rely on ynh_replace_string (which is basically a wrapper for sed)
 | 
				
			||||||
 | 
					### When doing so, you also need to manually call ynh_store_file_checksum
 | 
				
			||||||
 | 
					###
 | 
				
			||||||
 | 
					### ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$final_path/some_config_file"
 | 
				
			||||||
 | 
					### ynh_store_file_checksum --file="$final_path/some_config_file"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#=================================================
 | 
					#=================================================
 | 
				
			||||||
# GENERIC FINALIZATION
 | 
					# GENERIC FINALIZATION
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user