Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use list of system files in userdata folder #647

Merged
merged 2 commits into from Apr 30, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion distributions/openhab/src/main/descriptors/archive.xml
Expand Up @@ -37,6 +37,7 @@
<outputDirectory>runtime</outputDirectory>
<excludes>
<exclude>bin/*.bat</exclude>
<exclude>bin/*.lst</exclude>
</excludes>
<includes>
<include>bin/**</include>
Expand All @@ -48,8 +49,9 @@
<includes>
<include>lib/**</include>
<include>system/**</include>
<include>bin/*.lst</include>
</includes>
<!-- specifically fixes https://github.com/openhab/openhab-distro/issues/503 -->
<!-- specifically fixes https://github.com/openhab/openhab-distro/issues/503 -->
<fileMode>0644</fileMode>
</fileSet>

Expand Down
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