Skip to content

Commit

Permalink
This version comes with a fundamental structural update. The user exp…
Browse files Browse the repository at this point in the history
…erience stays the same, but under the hood the whole loading and displaying structure has changed.

This will be noticeable in better performance, especially when dealing with many files.

Improvements:
- Better performance when loading big number of files. The load process doesn't freeze the GUI anymore but updates it while the process is ongoing.
- Saving and loading hash files is not deserialized to the file notes themselves to be more memory efficient.

Bug fixes
- Fix installer for linux and macOS.
  • Loading branch information
nilshenrich committed Apr 3, 2024
2 parents 1e95873 + 69025b9 commit 3468d6f
Show file tree
Hide file tree
Showing 40 changed files with 1,274 additions and 788 deletions.
23 changes: 15 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,11 @@ jobs:
- name: Create install folder to upload
run: |
mkdir ./FileTreeHasher-linux-x64
mv flutter_app/build/linux/x64/release/bundle ./FileTreeHasher-linux-x64/
cp flutter_app/install/linux/install.sh ./FileTreeHasher-linux-x64/
mv flutter_app/build/linux/x64/release/bundle ./FileTreeHasher-linux-x64/bin
cp flutter_app/assets/img/logo.png ./FileTreeHasher-linux-x64/icon.png
cp flutter_app/install/linux/install.sh ./FileTreeHasher-linux-x64/install.sh
sed -i "s/^p_bundlefiles=.*$/p_bundlefiles=\$currentDir\/bin\/*/" ./FileTreeHasher-linux-x64/install.sh
sed -i "s/^p_bundleIcon=.*$/p_bundleIcon=\$currentDir\/icon.png/" ./FileTreeHasher-linux-x64/install.sh
- name: Pack bundle to artifact
uses: actions/upload-artifact@v3
Expand Down Expand Up @@ -110,11 +113,16 @@ jobs:
flutter config --enable-macos-desktop
flutter build macos --release
- name: Move application into parent folder
run: |
mkdir file_tree_hasher
mv flutter_app/build/macos/Build/Products/Release/File\ Tree\ Hasher.app file_tree_hasher/
- name: Pack bundle to artifact
uses: actions/upload-artifact@v3
with:
name: FileTreeHasher-macos-x64
path: flutter_app/build/macos/Build/Products/Release/File\ Tree\ Hasher.app/
path: file_tree_hasher/
if-no-files-found: error

# Update page and deploy builds
Expand Down Expand Up @@ -171,23 +179,22 @@ jobs:
run: |
mv assets/downloads/* ../website/assets/downloads/
- name: Checkout repository on develop
- name: Checkout repository on tag
uses: actions/checkout@v3
with:
ref: develop

- name: Restore all buffered website (including downloads)
run: |
rm -r ./website/
mv ../website/ .
- name: Push new website to develop (excluding downloads)
- name: Push new website to new branch (excluding downloads)
run: |
git config --global user.email "nilshenrich@web.de"
git config --global user.name "Nils Henrich - deploy workflow"
git checkout -b actions/${{ steps.get-tag-name.outputs.out }}
git add -- . ':!website/assets/downloads/'
git commit -m "<GitHub Action> Deploy version ${{ steps.get-tag-name.outputs.out }}"
git push origin
git push --set-upstream origin actions/${{ steps.get-tag-name.outputs.out }}
- name: Clean repository (only website to be left)
run: |
Expand Down
16 changes: 14 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
{
"cmake.sourceDirectory": "/home/nils/Dokumente/GitRepos/FileTreeHasher/flutter_app/linux",
"cSpell.words": [
"Hasher",
"nilshenrich"
]
],
"dart.lineLength": 150,
"[dart]": {
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.detectIndentation": false,
"editor.suggest.insertMode": "replace",
"editor.defaultFormatter": "Dart-Code.dart-code",
"editor.inlayHints.enabled": "offUnlessPressed",
"editor.rulers": [
150
]
},
"cmake.configureOnOpen": false
}
9 changes: 7 additions & 2 deletions flutter_app/install/linux/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ if [ "$EUID" -ne 0 ]; then
exit -1
fi


# Get directory of this file
currentDir=$(dirname $(readlink -f $0))

Expand All @@ -14,11 +15,15 @@ binname="file_tree_hasher"
appname="filetreehasher"
installpath="/opt/$appname"

# Bundle path
p_bundlefiles=$currentDir/../../build/linux/x64/release/bundle/*
p_bundleIcon=$currentDir/../../assets/img/logo.png

# Create installation directory
mkdir -p $installpath

# Copy bundle folder
cp -r $currentDir/../../build/linux/x64/release/bundle/* $installpath/
cp -r $p_bundlefiles $installpath/

# Rename binary file
mv $installpath/$binname $installpath/$appname
Expand All @@ -37,7 +42,7 @@ chmod 755 $installpath/$appname
ln -s $installpath/$appname /usr/local/bin/$appname

# Create desktop entry by copying the desktop file
convert $currentDir/../../assets/img/logo.png -resize 256x256 $installpath/favicon.png
convert $p_bundleIcon -resize 256x256 $installpath/favicon.png
echo -e """[Desktop Entry]
Type=Application
Name=File Tree Hasher
Expand Down
2 changes: 1 addition & 1 deletion flutter_app/install/windows/setupscript.iss
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#define MyAppName "File Tree Hasher"
#define MyAppVersion "1.0.1+4"
#define MyAppVersion "2.0.0"
#define MyAppPublisher "Nils Henrich"
#define MyAppURL "https://nilshenrich.github.io/FileTreeHasher/"
#define MyAppExeName "file_tree_hasher.exe"
Expand Down
1 change: 1 addition & 0 deletions flutter_app/ios/Flutter/Debug.xcconfig
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"
1 change: 1 addition & 0 deletions flutter_app/ios/Flutter/Release.xcconfig
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"
44 changes: 44 additions & 0 deletions flutter_app/ios/Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '12.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}

def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end

File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
use_frameworks!
use_modular_headers!

flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
inherit! :search_paths
end
end

post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
Loading

0 comments on commit 3468d6f

Please sign in to comment.