Created
September 18, 2024 16:43
-
-
Save haim0n/501ba1e4384683093b70d01e03174e45 to your computer and use it in GitHub Desktop.
Mount Ubuntu snap package for editing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -x | |
function mount_snap() { | |
local snap_name=$1 | |
local snap_version=$(snap list | grep $snap_name | awk '{print $3}') | |
local snap_name_escaped=$(echo $snap_name | sed 's/-/\\x2d/g') | |
local snap_dir=/var/lib/snapd/snaps | |
local tmp_dir=$(mktemp -d) | |
sudo systemctl stop snap-$snap_name_escaped-$snap_version.mount | |
sudo /usr/lib/snapd/snap-discard-ns $snap_name | |
cd $tmp_dir || exit 1 | |
local snap_file=$snap_dir/${snap_name}_${snap_version}.snap | |
sudo chmod o+r $snap_file | |
sudo unsquashfs -d snap $snap_file | |
echo "Snap $snap_name mounted in $tmp_dir/snap" | |
read -r -p "Hit Enter to repackage the snap after you're done editing" | |
sudo rm -rf $snap_file | |
sudo mksquashfs snap $snap_file -noappend -comp lzo -no-fragments | |
sudo systemctl start snap-$snap_name_escaped-$snap_version.mount | |
read -r -p "Hit Enter to cleanup $tmp_dir/snap" | |
sudo rm -rf $tmp_dir/snap | |
} | |
# sample usage | |
mount_snap "pycharm-professional" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment