Open louiss0 opened 2 months ago
How would the installer look like/work?
How would the installer look like/work?
The installer would download yadm by using a release URL.
The code would be similar to the done below. This is the brew code.
class Yadm < Formula
desc "Yet Another Dotfiles Manager"
homepage "https://yadm.io/"
url "https://github.com/yadm-dev/yadm/archive/refs/tags/3.3.0.tar.gz"
sha256 "a977836ee874fece3d69b5a8f7436e6ce4e6bf8d2520f8517c128281cc6b101d"
license "GPL-3.0-or-later"
head "https://github.com/yadm-dev/yadm.git", branch: "master"
bottle do
sha256 cellar: :any_skip_relocation, all: "d86d417aca8da9b28d8979c52813d33d24073798b27600cad823c47c7dd9cd26"
end
def install
system "make", "install", "PREFIX=#{prefix}"
bash_completion.install "completion/bash/yadm"
fish_completion.install "completion/fish/yadm.fish"
zsh_completion.install "completion/zsh/_yadm"
end
test do
system bin/"yadm", "init"
assert_predicate testpath/".local/share/yadm/repo.git/config", :exist?, "Failed to init repository."
assert_match testpath.to_s, shell_output("#{bin}/yadm gitconfig core.worktree")
# disable auto-alt
system bin/"yadm", "config", "yadm.auto-alt", "false"
assert_match "false", shell_output("#{bin}/yadm config yadm.auto-alt")
(testpath/"testfile").write "test"
system bin/"yadm", "add", "#{testpath}/testfile"
system bin/"yadm", "gitconfig", "user.email", "test@test.org"
system bin/"yadm", "gitconfig", "user.name", "Test User"
system bin/"yadm", "commit", "-m", "test commit"
assert_match "test commit", shell_output("#{bin}/yadm log --pretty=oneline 2>&1")
end
end
How would the installer look like/work?
What you do is write a manifest file that contains code that looks like this.
PackageIdentifier: # Publisher.package format.
PackageVersion: # Version numbering format.
PackageLocale: # BCP 47 format (e.g. en-US)
Publisher: # The name of the publisher.
PackageName: # The name of the application.
License: # The license of the application.
ShortDescription: # The description of the application.
Installers:
- Architecture: # Enumeration of supported architectures.
InstallerType: # Enumeration of supported installer types (exe, msi, msix, inno, wix, nullsoft, appx).
InstallerUrl: # Path to download installation file.
InstallerSha256: # SHA256 calculated from installer.
ManifestType: # The manifest file type
ManifestVersion: 1.6.0
If you click the link to the website it should explain everything.
If you need to video watch this one https://youtu.be/uxr7m8wDeGA?t=592
Start at that exact time
Yes, I understand the manifest part. But it's the actual installer i.e. the what I assume must be a .exe or .msi or similar file that I'm wondering about. I'm guessing you can write it in ruby like for homebrew?
Yes, I understand the manifest part. But it's the actual installer i.e. the what I assume must be a .exe or .msi or similar file that I'm wondering about. I'm guessing you can write it in ruby like for homebrew?
No it can be a url!
Is your feature request related to a problem? Please describe.
Installing and setting up yadm is a painful process. It's a tool that must always be installed before using my program. I can only install it by using a source or a package manager like basher.
Describe the solution you'd like
I think it should be installed by using a package manager like winget, choco or any non-bash related package manager.
Describe alternatives you've considered
I wanted to create my own package to install yadm.
Additional context
Well I'm asking for the creation of a yadm installer for winget. The link for doing that is here. https://learn.microsoft.com/en-us/windows/package-manager/package/
P.S I'm willing to do this but if I do where do I place the package. Do I send a link to the repo that i created or do I submit a pull request.