From e6c16e8deb937de1ba176f1f0fe3e3c3abcbadd7 Mon Sep 17 00:00:00 2001
From: Jeremy Soller <jackpot51@gmail.com>
Date: Thu, 7 Jul 2016 19:48:26 -0600
Subject: [PATCH] hack to get all entries to show up with ralloc

---
 src/launcher/main.rs | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/src/launcher/main.rs b/src/launcher/main.rs
index 715e680..e493b63 100644
--- a/src/launcher/main.rs
+++ b/src/launcher/main.rs
@@ -6,7 +6,8 @@ extern crate orbimage;
 extern crate orbfont;
 
 use std::env;
-use std::fs::{self, File};
+use std::fs::File;
+use std::path::Path;
 use std::process::Command;
 use std::thread;
 
@@ -44,16 +45,26 @@ fn get_display_size() -> (i32, i32) {
 }
 
 fn get_packages() -> Vec<Package> {
-    let mut packages: Vec<Package> = Vec::new();
-
-    for entry_result in fs::read_dir("/apps/").unwrap() {
-        let entry = entry_result.unwrap();
-        if entry.file_type().unwrap().is_dir() {
-            packages.push(Package::from_path(&("/apps/".to_string() + entry.file_name().to_str().unwrap())));
+    let read_dir = Path::new("/apps/").read_dir().expect("failed to read_dir on /apps/");
+
+    let mut entries = vec![];
+    for dir in read_dir {
+        let dir = match dir {
+            Ok(x) => x,
+            Err(_) => continue,
+        };
+        let file_name = dir.file_name().to_string_lossy().into_owned();
+        if dir.file_type().expect("failed to get file_type").is_dir() {
+            entries.push(file_name);
         }
     }
 
-    packages.sort_by(|a, b| a.name.cmp(&b.name));
+    entries.sort();
+
+    let mut packages: Vec<Package> = Vec::new();
+    for entry in entries.iter() {
+        packages.push(Package::from_path(&format!("/apps/{}", entry)));
+    }
 
     packages
 }
-- 
GitLab