Upgrade to Pro — share decks privately, control downloads, hide ads and more …

filesystem風チャットchatsh開発で学んだGoの便利package紹介

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 filesystem風チャットchatsh開発で学んだGoの便利package紹介

Avatar for ponyo877

ponyo877

May 21, 2025
Tweet

More Decks by ponyo877

Other Decks in Technology

Transcript

  1. ศརQBDLBHFcબ "TBLVTBHPQPOZP goreleaser/goreleaser Release engineering, simplified Go 14.6k 1.0k rivo/tview

    Terminal UI library with rich, interactive widgets — written in Golang Go 12.0k 606 spf13/cobra A Commander for modern Go CLI interactions Go 40.5k 2.9k
  2. ศརQBDLBHFcTQGDPCSB QBDLBHF໊TQGDPCSB⭐L ར༻ྫLVCFDUM HI LT FWBOT ֓ཁ (P੡$-*ΞϓϦέʔγϣϯͷͨ ΊͷڧྗͳϑϨʔϜϫʔΫ 5"#ิ׬ػೳ͋Γ

    ͕ܾ͜͜Ίख "TBLVTBHPQPOZP // cdCmd αϒίϚϯυͷఆٛ var cdCmd = &cobra.Command{ Use: "cd [directory]", Short: "shrt desc", Long: `Long Long description of the cd command.`, Args: cobra.MaximumNArgs(1), // TAB: ิ׬ ValidArgsFunction: PathCompletionFunc, Run: func(cmd *cobra.Command, args []string) { // cdίϚϯυͷॲཧ var targetDir string currentDir := viper.GetString(currentDir) if currentDir == "" { currentDir = viper.GetString(homeDir) } // ৄࡉུলུ }, }
  3. ศརQBDLBHFcSJWPUWJFX "TBLVTBHPQPOZP // vimίϚϯυͷίΞ෦෼ func runChatUITview() error { // ॳظԽ

    app := tview.NewApplication() // νϟοτͷϝοηʔδཤྺදࣔϑΟʔϧυΛఆٛ textView := tview.NewTextView(). SetDynamicColors(true). SetRegions(true). SetWordWrap(true). SetScrollable(true). ScrollToEnd() // νϟοτͷϝοηʔδೖྗϑΟʔϧυΛఆٛ inputField := tview.NewInputField(). SetLabel(userName + " ❯❯ "). SetFieldWidth(0). SetAcceptanceFunc(tview.InputFieldMaxLength(256)) // textViewͱinputFieldͷϨΠΞ΢τΛઃఆ flex := tview.NewFlex(). SetDirection(tview.FlexRow). AddItem(textView, 0, 1, false). AddItem(inputField, 1, 0, true) // ઃఆ QBDLBHF໊SJWPUWJFX⭐L ར༻ྫLT HI XUG ֓ཁ λʔϛφϧ্ͰϦονͳ6* 56*  Λߏங͢ΔͨΊͷϥΠϒϥϦ ΠϯλϥΫςΟϒͳίϯιʔϧΞ ϓϦέʔγϣϯ։ൃʹ࠷ద
  4. ศརQBDLBHFcHPSFMFBTFS "TBLVTBHPQPOZP QBDLBHF໊HPSFMFBTFS⭐ L ֓ཁ ϓϩδΣΫτͷϦϦʔε࡞ۀΛࣗ ಈԽ͢Δπʔϧ (Pݴޠઐ༻Ͱ͸ͳ͘3VTU  5ZQF4DSJQU

    1ZUIPOͳͲଟݴޠʹ ରԠ )PNFCSFXରԠʹ࢖༻ goos: - linux - windows - darwin main: ./cli archives: - formats: [tar.gz] name_template: >- {{ .ProjectName }}_ {{- title .Os }}_ {{- if eq .Arch "amd64" }}x86_64 {{- else if eq .Arch "386" }}i386 {{- else }}{{ .Arch }}{{ end }} {{- if .Arm }}v{{ .Arm }}{{ end }} # use zip for windows archives format_overrides: - goos: windows formats: [zip] brews: - repository: owner: ponyo877 name: homebrew-tap token: "{{ .Env.TAP_GITHUB_TOKEN }}"
  5. ศརQBDLBHFcHPSFMFBTFS "TBLVTBHPQPOZP - uses: actions/setup-go@v3 with: go-version-file: go.mod cache: true

    - uses: goreleaser/goreleaser-action@v6 with: version: '~> v2' args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAP_GITHUB_TOKEN: ${{ secrets.TAP_GITHUB_TOKEN }} (JU)VC"DUJPOઃఆ