Skip to content

Commit

Permalink
Use list for systemfiles in userdata folder.
Browse files Browse the repository at this point in the history
Signed-off-by: Ben Clark <ben@benjyc.uk>
  • Loading branch information
BClark09 committed Apr 22, 2018
1 parent 3d2fc78 commit ce9593d
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 63 deletions.
33 changes: 16 additions & 17 deletions distributions/openhab/src/main/resources/bin/backup
Expand Up @@ -44,12 +44,16 @@ setup(){

WorkingDir="$(cd "$(dirname "$0")" && cd ../.. && pwd -P)"

if [ -z "$OPENHAB_CONF" ]; then OPENHAB_CONF="$WorkingDir/conf"; fi
if [ -z "$OPENHAB_USERDATA" ]; then OPENHAB_USERDATA="$WorkingDir/userdata"; fi
if [ -z "$OPENHAB_BACKUPS" ]; then OPENHAB_BACKUPS="$WorkingDir/backups"; fi
if [ -z "$OPENHAB_CONF" ]; then OPENHAB_CONF="$WorkingDir/conf"; fi
if [ -z "$OPENHAB_USERDATA" ]; then OPENHAB_USERDATA="$WorkingDir/userdata"; fi
if [ -z "$OPENHAB_BACKUPS" ]; then OPENHAB_BACKUPS="$WorkingDir/backups"; fi
if [ -z "$OPENHAB_RUNTIME" ]; then OPENHAB_RUNTIME="$WorkingDir/runtime"; fi

echo "Using '$OPENHAB_CONF' as conf folder..."
echo "Using '$OPENHAB_USERDATA' as userdata folder..."
echo "Using '$OPENHAB_RUNTIME' as runtime folder..."

fileList="$OPENHAB_RUNTIME/bin/userdata_sysfiles.lst"

timestamp=$(date +"%y_%m_%d-%H_%M_%S")
## Set the filename
Expand Down Expand Up @@ -111,20 +115,15 @@ cp -a "${OPENHAB_CONF:?}/"* "$TempDir/conf"

## Remove non-transferable userdata files
echo "Removing unnecessary files..."
rm -rf "$TempDir/userdata/cache"
rm -rf "$TempDir/userdata/tmp"
rm -rf "$TempDir/userdata/etc/all.policy"
rm -rf "$TempDir/userdata/etc/branding.properties"
rm -rf "$TempDir/userdata/etc/branding-ssh.properties"
rm -rf "$TempDir/userdata/etc/config.properties"
rm -rf "$TempDir/userdata/etc/custom.properties"
rm -rf "$TempDir/userdata/etc/version.properties"
rm -rf "$TempDir/userdata/etc/distribution.info"
rm -rf "$TempDir/userdata/etc/jre.properties"
rm -rf "$TempDir/userdata/etc/profile.cfg"
rm -rf "$TempDir/userdata/etc/startup.properties"
rm -rf "$TempDir/userdata/etc/org.apache.karaf"*
rm -rf "$TempDir/userdata/etc/org.ops4j.pax.url.mvn.cfg"
if [ -f "$fileList" ]; then
while IFS= read -r fileName
do
rm -rf "$TempDir/userdata/etc/$fileName"
done < "$fileList"
else
echo "System Filelist not found, exiting..."
exit 1
fi

## If the backup directory is inside userdata folder do not include it
## Mainly for apt/rpm automatic
Expand Down
19 changes: 5 additions & 14 deletions distributions/openhab/src/main/resources/bin/backup.ps1
Expand Up @@ -80,26 +80,17 @@
Write-Output "timestamp=$timestamp" | Add-Content "$TempDir\backup.properties"
Write-Output "user=openhab" | Add-Content "$TempDir\backup.properties"
Write-Output "group=openhab" | Add-Content "$TempDir\backup.properties"

Write-Host -ForegroundColor Cyan "Copying userdata and conf folder contents to temp directory"
mkdir "$TempDir\userdata" | Out-Null
Copy-Item $OHUserdata $TempDir -Recurse -Force
mkdir "$TempDir\conf" | Out-Null
Copy-Item $OHConf $TempDir -Recurse -Force

Write-Host -ForegroundColor Cyan "Removing unnecessary files..."
Remove-Item ($TempDir + '\userdata\etc\all.policy') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\branding.properties') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\branding-ssh.properties') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\config.properties') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\custom.properties') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\distribution.info') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\jre.properties') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\org.ops4j.pax.url.mvn.cfg') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\profile.cfg') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\startup.properties') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\version.properties') -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\etc\org.apache.karaf*') -ErrorAction SilentlyContinue
foreach($FileName in Get-Content "$OHDirectory\runtime\bin\userdata_sysfiles.lst"){
Remove-Item ($TempDir + '\userdata\etc\' + $FileName) -ErrorAction SilentlyContinue
}
Remove-Item ($TempDir + '\userdata\cache') -Recurse -ErrorAction SilentlyContinue
Remove-Item ($TempDir + '\userdata\tmp') -Recurse -ErrorAction SilentlyContinue

Expand All @@ -113,7 +104,7 @@

Write-Host -ForegroundColor Cyan "Removing temp files..."
Remove-Item $TempDir -Recurse -ErrorAction SilentlyContinue

Write-Host -ForegroundColor Green "Backup created at $OHBackups\openhab2-backup-$timestamp.zip"
}
}
35 changes: 17 additions & 18 deletions distributions/openhab/src/main/resources/bin/update
Expand Up @@ -28,14 +28,14 @@ setup(){

## Second parameter can be the openHAB path, if not assume the script is called from root!
if [ -z "$2" ]; then
if [ -n "$OPENHAB_HOME" ]; then
if [ -n "$OPENHAB_HOME" ]; then
WorkingDir="$OPENHAB_HOME"
DirError="'OPENHAB_HOME' does not point towards openHAB's root directory."
else
WorkingDir="."
DirError="The script must be called from openHAB's root directory."
fi
else
else
WorkingDir="$2"
DirError="The specified directory is not openHAB's root directory."
fi
Expand Down Expand Up @@ -259,22 +259,21 @@ echo ""
echo "Removing openHAB System Files..."
mkdir -p "$TempDir/runtime"
mkdir -p "$TempDir/userdata/etc"
mv "$WorkingDir/runtime" "$TempDir/runtime/"
mv "$WorkingDir/userdata/etc/all.policy" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/branding.properties" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/branding-ssh.properties" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/config.properties" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/custom.properties" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/custom.system.properties" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/distribution.info" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/jre.properties" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/org.apache.karaf"* "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/org.apache.felix"* "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/org.ops4j.pax.url.mvn.cfg" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/profile.cfg" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/startup.properties" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/system.properties" "$TempDir/userdata/etc/"
mv "$WorkingDir/userdata/etc/version.properties" "$TempDir/userdata/etc/"
mv "$WorkingDir/runtime" "$TempDir/runtime/"

## Go through a list of system files that are stored in the update archive.
echo "New system filelist required, extracting from zip..."
unzip -qp "$OutputFile" runtime/bin/userdata_sysfiles.lst > "$TempDir/filelist.lst" || {
echo "System Filelist not found in update, exiting..."
exit 1
}
while IFS= read -r fileName
do
fullPath="$WorkingDir/userdata/etc/$fileName"
if [ -f "$fullPath" ]; then
mv "$fullPath" "$TempDir/userdata/etc/"
fi
done < "$TempDir/filelist.lst"

## Clearing the cache and tmp folders is necessary for upgrade.
echo "Clearing cache..."
Expand Down
18 changes: 4 additions & 14 deletions distributions/openhab/src/main/resources/bin/update.ps1
Expand Up @@ -129,7 +129,7 @@ Function Update-openHAB {
Write-Host -ForegroundColor Cyan "Deleting the service..."
$service.Delete()
}


# Checking if openHAB is running
Write-Host -ForegroundColor Cyan "Checking whether openHAB is running..."
Expand Down Expand Up @@ -192,19 +192,9 @@ Function Update-openHAB {

# Delete current userdata files
Write-Host -ForegroundColor Cyan "Deleting current files in userdata that should not persist..."
Remove-Item ($OHDirectory + '\userdata\etc\all.policy') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\branding.properties') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\branding-ssh.properties') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\config.properties') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\custom.properties') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\distribution.info') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\jre.properties') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\org.ops4j.pax.url.mvn.cfg') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\profile.cfg') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\startup.properties') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\version.properties') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\org.apache.karaf*') -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\etc\org.apache.felix*') -ErrorAction SilentlyContinue
foreach($FileName in Get-Content "$TempDir\openhab-$OHVersion\runtime\bin\userdata_sysfiles.lst"){
Remove-Item "$OHDirectory\userdata\etc\$FileName" -ErrorAction SilentlyContinue
}
Remove-Item ($OHDirectory + '\userdata\cache') -Recurse -ErrorAction SilentlyContinue
Remove-Item ($OHDirectory + '\userdata\tmp') -Recurse -ErrorAction SilentlyContinue

Expand Down
35 changes: 35 additions & 0 deletions distributions/openhab/src/main/resources/bin/userdata_sysfiles.lst
@@ -0,0 +1,35 @@
all.policy
branding.properties
branding-ssh.properties
com.eclipsesource.jaxrs.connector.cfg
com.eclipsesource.jaxrs.swagger.cfg
config.properties
custom.properties
custom.system.properties
distribution.info
jmx.acl.org.apache.karaf.bundle.cfg
jmx.acl.org.apache.karaf.config.cfg
jre.properties
org.apache.felix.eventadmin.impl.EventAdmin.cfg
org.apache.felix.fileinstall-deploy.cfg
org.apache.karaf.command.acl.bundle.cfg
org.apache.karaf.command.acl.config.cfg
org.apache.karaf.command.acl.feature.cfg
org.apache.karaf.command.acl.jaas.cfg
org.apache.karaf.command.acl.kar.cfg
org.apache.karaf.command.acl.scope_bundle.cfg
org.apache.karaf.command.acl.shell.cfg
org.apache.karaf.command.acl.system.cfg
org.apache.karaf.features.cfg
org.apache.karaf.features.repos.cfg
org.apache.karaf.jaas.cfg
org.apache.karaf.kar.cfg
org.apache.karaf.log.cfg
org.apache.karaf.shell.cfg
org.jupnp.cfg
org.ops4j.pax.url.mvn.cfg
overrides.properties
profile.cfg
startup.properties
system.properties
version.properties

0 comments on commit ce9593d

Please sign in to comment.