Skip to content

Commit 8884596

Browse files
committed
fix: improve snap support and installation instructions
- Add SNAP_REAL_HOME for tilde expansion in snap environments - Add snap connect commands for home and removable-media permissions - Add hash -r to refresh shell path cache after installation
1 parent 4f8fbe2 commit 8884596

3 files changed

Lines changed: 27 additions & 7 deletions

File tree

.github/workflows/ci.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -991,19 +991,26 @@ jobs:
991991
```bash
992992
wget https://github.com/NDXDeveloper/slashsum/releases/download/${{ github.ref_name }}/slashsum_${{ github.ref_name }}_amd64.deb
993993
sudo apt install ./slashsum_${{ github.ref_name }}_amd64.deb
994+
hash -r
994995
slashsum --version
995996
```
996997
997998
#### Linux (Snap Store - Recommended)
998999
```bash
9991000
sudo snap install slashsum
1001+
sudo snap connect slashsum:home
1002+
sudo snap connect slashsum:removable-media
1003+
hash -r # Refresh shell path cache
10001004
slashsum --version
10011005
```
10021006
10031007
#### Linux (Snap from GitHub Release)
10041008
```bash
10051009
wget https://github.com/NDXDeveloper/slashsum/releases/download/${{ github.ref_name }}/slashsum_${{ github.ref_name }}_amd64.snap
10061010
sudo snap install --dangerous slashsum_${{ github.ref_name }}_amd64.snap
1011+
sudo snap connect slashsum:home
1012+
sudo snap connect slashsum:removable-media
1013+
hash -r # Refresh shell path cache
10071014
slashsum --version
10081015
```
10091016

INSTALL

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ usermod -aG wheel your_username
3636
# =============================================================================
3737

3838
sudo apt install ./slashsum_*_amd64.deb
39+
hash -r
3940

4041
# Or with dpkg
4142
sudo dpkg -i slashsum_*_amd64.deb
@@ -87,6 +88,9 @@ sudo ln -s /var/lib/snapd/snap /snap
8788

8889
## Install from Snap Store (recommended - auto-updates)
8990
sudo snap install slashsum
91+
sudo snap connect slashsum:home
92+
sudo snap connect slashsum:removable-media
93+
hash -r
9094

9195
## Run
9296
slashsum --version
@@ -98,6 +102,9 @@ slashsum --version
98102

99103
## Install the snap package from release file
100104
sudo snap install --dangerous slashsum_*_amd64.snap
105+
sudo snap connect slashsum:home
106+
sudo snap connect slashsum:removable-media
107+
hash -r
101108

102109
## Run
103110
slashsum --version

src/main.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -261,14 +261,20 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
261261

262262
/// Expands tilde (~) to home directory in file paths
263263
/// Handles both "~" and "~/path" patterns
264+
/// Supports snap confinement (SNAP_REAL_HOME), standard Unix (HOME), and Windows (USERPROFILE)
264265
fn expand_tilde(path: &str) -> PathBuf {
265-
if path.starts_with("~/") {
266-
if let Some(home) = env::var_os("HOME").or_else(|| env::var_os("USERPROFILE")) {
267-
return PathBuf::from(home).join(&path[2..]);
268-
}
269-
} else if path == "~" {
270-
if let Some(home) = env::var_os("HOME").or_else(|| env::var_os("USERPROFILE")) {
271-
return PathBuf::from(home);
266+
if path.starts_with("~/") || path == "~" {
267+
// Priority: SNAP_REAL_HOME (snap), HOME (Unix), USERPROFILE (Windows)
268+
let home = env::var_os("SNAP_REAL_HOME")
269+
.or_else(|| env::var_os("HOME"))
270+
.or_else(|| env::var_os("USERPROFILE"));
271+
272+
if let Some(home_dir) = home {
273+
if path == "~" {
274+
return PathBuf::from(home_dir);
275+
} else {
276+
return PathBuf::from(home_dir).join(&path[2..]);
277+
}
272278
}
273279
}
274280
PathBuf::from(path)

0 commit comments

Comments
 (0)