Compare commits
5 commits
fe2039c05e
...
bfef9f3fd6
| Author | SHA1 | Date | |
|---|---|---|---|
| bfef9f3fd6 | |||
|
|
1cda8b6f50 | ||
|
|
4e65ef3843 | ||
|
|
d1fd272fbb | ||
|
|
4b751dc246 |
2 changed files with 42 additions and 4 deletions
37
.forgejo/workflows/ci.yml
Normal file
37
.forgejo/workflows/ci.yml
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci:
|
||||||
|
runs-on: docker
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Cache cargo
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.cargo/registry
|
||||||
|
~/.cargo/bin
|
||||||
|
target
|
||||||
|
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-cargo-
|
||||||
|
|
||||||
|
- name: Install Rust toolchain
|
||||||
|
run: |
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --profile minimal --component clippy --component rustfmt
|
||||||
|
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
||||||
|
|
||||||
|
- name: Install cargo-make and cargo-audit
|
||||||
|
run: |
|
||||||
|
for crate in cargo-make cargo-audit; do
|
||||||
|
command -v "$crate" >/dev/null 2>&1 || cargo install "$crate"
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Run CI checks
|
||||||
|
run: cargo make ci
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
use freedesktop_icons::lookup;
|
use freedesktop_icons::lookup;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
use std::{env, fs};
|
||||||
|
|
||||||
const ICON_SIZE: u16 = 32;
|
const ICON_SIZE: u16 = 32;
|
||||||
|
|
||||||
|
|
@ -47,7 +48,7 @@ fn desktop_file_icon_name(desktop_entry: &str) -> Option<String> {
|
||||||
let path = dir
|
let path = dir
|
||||||
.join("applications")
|
.join("applications")
|
||||||
.join(format!("{desktop_entry}.desktop"));
|
.join(format!("{desktop_entry}.desktop"));
|
||||||
if let Ok(contents) = std::fs::read_to_string(&path)
|
if let Ok(contents) = fs::read_to_string(&path)
|
||||||
&& let Some(icon) = parse_icon_key(&contents)
|
&& let Some(icon) = parse_icon_key(&contents)
|
||||||
{
|
{
|
||||||
return Some(icon);
|
return Some(icon);
|
||||||
|
|
@ -58,11 +59,11 @@ fn desktop_file_icon_name(desktop_entry: &str) -> Option<String> {
|
||||||
|
|
||||||
fn data_dirs() -> Vec<PathBuf> {
|
fn data_dirs() -> Vec<PathBuf> {
|
||||||
let mut dirs = vec![];
|
let mut dirs = vec![];
|
||||||
if let Some(home) = std::env::var_os("HOME") {
|
if let Some(home) = env::var_os("HOME") {
|
||||||
dirs.push(PathBuf::from(home).join(".local/share"));
|
dirs.push(PathBuf::from(home).join(".local/share"));
|
||||||
}
|
}
|
||||||
let xdg_data_dirs = std::env::var("XDG_DATA_DIRS")
|
let xdg_data_dirs =
|
||||||
.unwrap_or_else(|_| "/usr/local/share:/usr/share".to_string());
|
env::var("XDG_DATA_DIRS").unwrap_or_else(|_| "/usr/local/share:/usr/share".to_string());
|
||||||
dirs.extend(xdg_data_dirs.split(':').map(PathBuf::from));
|
dirs.extend(xdg_data_dirs.split(':').map(PathBuf::from));
|
||||||
dirs
|
dirs
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue