diff --git a/.gitignore b/.gitignore index aea32ed..e9ac133 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,8 @@ profile *.moved-aside DerivedData .idea/ + +*.snap + +venv/ +snapcraft.yaml \ No newline at end of file diff --git a/packager.py b/packager.py index 2cc55cd..1aa9ae2 100644 --- a/packager.py +++ b/packager.py @@ -56,6 +56,8 @@ def build(skipcargo): build_windows(package_info) elif TARGET_OS == "macos": build_mac(package_info) + elif TARGET_OS == "linux": + build_snap(package_info) def build_windows(package_info): @@ -174,6 +176,26 @@ def build_mac(package_info): print("Done!") + +def build_snap(package_info): + print("Starting packaging process for Snap package...") + + print("Rendering snapcraft template...") + with open("packager/linux/snapcraft-template.yaml", "r") as snapcraft_template: + content = snapcraft_template.read() + + # Replace variables + content = content.replace("{{{app_version}}}", package_info.version) + + with open("snapcraft.yaml", "w") as output_file: + output_file.write(content) + + print("Starting snapcraft packaging process...") + subprocess.run(["snapcraft"]) + + print("Done!") + + if __name__ == '__main__': print("[[ espanso packager ]]") diff --git a/packager/linux/snapcraft-template.yaml b/packager/linux/snapcraft-template.yaml new file mode 100644 index 0000000..9e19be8 --- /dev/null +++ b/packager/linux/snapcraft-template.yaml @@ -0,0 +1,75 @@ +name: espanso +version: {{{app_version}}} +summary: A Cross-platform Text Expander written in Rust +description: | + espanso is a Cross-platform, Text Expander written in Rust. + + ## What is a Text Expander? + + A text expander is a program that detects when you type + a specific keyword and replaces it with something else. + This is useful in many ways: + * Save a lot of typing, expanding common sentences. + * Create system-wide code snippets. + * Execute custom scripts + * Use emojis like a pro. + ___ + + ## Key Features + + * Works on Windows, macOS and Linux + * Works with almost any program + * Works with Emojis 😄 + * Works with Images + * Date expansion support + * Custom scripts support + * Shell commands support + * App-specific configurations + * Expandable with packages + * Built-in package manager for espanso hub: https://hub.espanso.org/ + * File based configuration + + ## Get Started + + Visit the official documentation: https://espanso.org/docs/ + + ## Support + + If you need some help to setup espanso, want to ask a question or simply get involved + in the community, Join the official Subreddit: https://www.reddit.com/r/espanso/ + +confinement: classic +base: core18 + +parts: + espanso: + plugin: rust + source: . + build-packages: + - libssl-dev + - pkg-config + - cmake + - libxtst-dev + - libx11-dev + - libxdo-dev + stage-packages: + - libx11-6 + - libxau6 + - libxcb1 + - libxdmcp6 + - libxdo3 + - libxext6 + - libxinerama1 + - libxkbcommon0 + - libxtst6 + - libnotify-bin + - xclip + +apps: + espanso: + command: bin/espanso + plugs: + - x11 + - network-bind + - desktop + - unity7 diff --git a/snapcraft.yaml b/snapcraft.yaml deleted file mode 100644 index 304ce85..0000000 --- a/snapcraft.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: espanso -version: 0.5.1 -summary: A Cross-platform Text Expander written in Rust -description: TODO - -confinement: classic -base: core18 - -parts: - espanso: - plugin: rust - source: . - build-packages: - - libssl-dev - - pkg-config - - cmake - - libxtst-dev - - libx11-dev - - libxdo-dev - stage-packages: - - libx11-6 - - libxau6 - - libxcb1 - - libxdmcp6 - - libxdo3 - - libxext6 - - libxinerama1 - - libxkbcommon0 - - libxtst6 - - libnotify-bin - - xclip - -apps: - espanso: - command: bin/espanso - plugs: - - x11 - - network-bind - - desktop