summaryrefslogtreecommitdiffstats
path: root/heimdall-frontend/source/qml/FileUtils.js
diff options
context:
space:
mode:
authorBenjamin Dobell <benjamin.dobell+git@glassechidna.com.au>2015-03-09 16:49:32 +0100
committerBenjamin Dobell <benjamin.dobell+git@glassechidna.com.au>2015-03-09 16:53:28 +0100
commit6971b49f85d9ddeb2da968a594d65affec3d2b44 (patch)
tree620c821e72045b3b547982efb3d068d5354de9ce /heimdall-frontend/source/qml/FileUtils.js
parentCompleted basic firmware file selection functionality (diff)
downloadHeimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar
Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar.gz
Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar.bz2
Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar.lz
Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar.xz
Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar.zst
Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.zip
Diffstat (limited to 'heimdall-frontend/source/qml/FileUtils.js')
-rw-r--r--heimdall-frontend/source/qml/FileUtils.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/heimdall-frontend/source/qml/FileUtils.js b/heimdall-frontend/source/qml/FileUtils.js
new file mode 100644
index 0000000..3735a37
--- /dev/null
+++ b/heimdall-frontend/source/qml/FileUtils.js
@@ -0,0 +1,44 @@
+function clipFileExtension(filename) {
+ var periodIndex = filename.lastIndexOf('.');
+
+ if (periodIndex > 0) {
+ return filename.slice(0, periodIndex - 1);
+ } else if (periodIndex === 0) {
+ return "";
+ }
+
+ return filename;
+}
+
+function filenameFromUrl(url) {
+ var urlString = url.toString();
+ return urlString.slice(urlString.lastIndexOf('/') + 1);
+}
+
+function fileExtension(url) {
+ var filename = filenameFromUrl(url);
+ var periodIndex = filename.lastIndexOf('.');
+
+ if (periodIndex >= 0) {
+ return filename.slice(periodIndex + 1);
+ }
+
+ return "";
+}
+
+// TODO: Real implemention - call out to C++ and validate with QFileInfo etc.
+function isFile(url) {
+ var filename = filenameFromUrl(url);
+ return filename.length > 0;
+}
+
+function isArchive(url) {
+ var filename = filenameFromUrl(url);
+ var extension = fileExtension(filename);
+ return (extension === 'tar' || extension === 'zip')
+ || (extension === 'gz' && fileExtension(clipFileExtension(filename)) === 'tar');
+}
+
+function extractArchive(url) {
+
+}