chore: REUSE.toml

- Replace .reuse/dep5 with the new REUSE.toml file.
- Add licensing information to REUSE.toml and remove the licensing
  headers from the source files.
This commit is contained in:
Dan Anglin 2024-08-01 04:01:38 +01:00
parent 60aeec06f9
commit 3d20adfa57
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638
82 changed files with 106 additions and 544 deletions

View file

@ -1,10 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: enbas
Upstream-Contact: Dan Anglin <d.n.i.anglin@gmail.com>
Source: https://codeflow.dananglin.me.uk/apollo/enbas
# Sample paragraph, commented out:
#
# Files: src/*
# Copyright: $YEAR $NAME <$CONTACT>
# License: ...

View file

@ -1,9 +1,3 @@
<!--
SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
SPDX-License-Identifier: CC-BY-4.0
-->
# Enbas
### Overview
@ -33,7 +27,8 @@ the `main` branch mirrored to the following forges:
### Licensing
Each file is annotated with the licensing information, but in general:
The licensing information associated with each file is specified in the [REUSE.toml](REUSE.toml) file,
but in general:
- All original source code is licensed under GPL-3.0-or-later.
- All documentation is licensed under CC-BY-4.0.

37
REUSE.toml Normal file
View file

@ -0,0 +1,37 @@
# SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
#
# SPDX-License-Identifier: CC0-1.0
version = 1
SPDX-PackageName = "enbas"
SPDX-PackageSupplier = "Dan Anglin <d.n.i.anglin@gmail.com>"
SPDX-PackageDownloadLocation = "https://codeflow.dananglin.me.uk/apollo/enbas"
[[annotations]]
path = [
"**.go",
"go.mod",
"magefiles/go.mod",
]
precedence = "override"
SPDX-FileCopyrightText = "2024 Dan Anglin <d.n.i.anglin@gmail.com>"
SPDX-License-Identifier = "GPL-3.0-or-later"
[[annotations]]
path = [
"README.md",
"docs/*.md",
"assets/images/*.png",
]
precedence = "override"
SPDX-FileCopyrightText = "2024 Dan Anglin <d.n.i.anglin@gmail.com>"
SPDX-License-Identifier = "CC-BY-4.0"
[[annotations]]
path = [
"go.sum",
"magefiles/go.sum",
]
precedence = "override"
SPDX-FileCopyrightText = "2024 Dan Anglin <d.n.i.anglin@gmail.com>"
SPDX-License-Identifier = "CC0-1.0"

View file

@ -1,3 +0,0 @@
SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
SPDX-License-Identifier: CC-BY-4.0

View file

@ -1,3 +0,0 @@
SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
SPDX-License-Identifier: CC-BY-4.0

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package main
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package main
import (

View file

@ -1,7 +1 @@
<!--
SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
SPDX-License-Identifier: CC-BY-4.0
-->
# Changelog

View file

@ -1,9 +1,3 @@
<!--
SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
SPDX-License-Identifier: CC-BY-4.0
-->
# Configuration reference
## Config

View file

@ -1,9 +1,3 @@
<!--
SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
SPDX-License-Identifier: CC-BY-4.0
-->
# Getting Started
## Summary

View file

@ -1,9 +1,3 @@
<!--
SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
SPDX-License-Identifier: CC-BY-4.0
-->
# Installation Guide
## Download

View file

@ -1,9 +1,3 @@
<!--
SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
SPDX-License-Identifier: CC-BY-4.0
-->
# User Manual
## Table of Contents
@ -722,23 +716,16 @@ video player in your configuration file respectively.
See the [configuration reference page](configuration.md#integration) on how to set up integration with
your media players.
- View a specific media attachment from a specific status
```
enbas show --type media --from status --status-id 01J0N11V4V7PWH0DDRAVT7TCFK --attachment-id 01J0N0RQSJ7CFGKHA30F7GBQXT
```
- View all image attachments from a specific status
```
enbas show --type media --from status --status-id 01J0N11V4V7PWH0DDRAVT7TCFK --all-images
```
```
enbas show --type media --from status --status-id 01J0N11V4V7PWH0DDRAVT7TCFK --attachment-id 01J0N0RQSJ7CFGKHA30F7GBQXT
```
| flag | type | required | description | default |
|------|------|----------|-------------|---------|
| `type` | string | true | The resource you want to view.<br>Here this should be `media`. | |
| `from` | string | true | The resource you want to view the media from.<br>Here this should be `status`. | |
| `status-id` | string | true | The ID of the status that you want to view the media from. | |
| `attachment-id` | string | false | The ID of the media attachment to download and view.<br>Use this flag multiple times to specify multiple media attachments. | |
| `all-images` | boolean | false | Set to `true` to show all images from the status. | false |
| `all-videos` | boolean | false | Set to `true` to show all videos from the status. | false |
| `attachment-id` | string | true | The ID of the media attachment to download and view.<br>Use this flag multiple times to specify multiple media attachments. | |
## Bookmarks

4
go.mod
View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
module codeflow.dananglin.me.uk/apollo/enbas
go 1.22.5

View file

@ -1,3 +0,0 @@
SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
SPDX-License-Identifier: CC0-1.0

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import "fmt"

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package client
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package config
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package config
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
const (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
type FlagNotSetError struct {
@ -116,10 +112,10 @@ func (e NotFollowingError) Error() string {
return "you are not following " + e.Account
}
//type UnknownMediaAttachmentError struct {
// AttachmentID string
//}
//
//func (e UnknownMediaAttachmentError) Error() string {
// return "unknown media attachment '" + e.AttachmentID + "'"
//}
type UnknownMediaAttachmentError struct {
AttachmentID string
}
func (e UnknownMediaAttachmentError) Error() string {
return "unknown media attachment '" + e.AttachmentID + "'"
}

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import "fmt"

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
const (

View file

@ -1,17 +1,13 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (
"flag"
"fmt"
"path/filepath"
"strings"
"codeflow.dananglin.me.uk/apollo/enbas/internal/client"
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
"codeflow.dananglin.me.uk/apollo/enbas/internal/media"
"codeflow.dananglin.me.uk/apollo/enbas/internal/model"
"codeflow.dananglin.me.uk/apollo/enbas/internal/printer"
"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
@ -32,8 +28,6 @@ type ShowExecutor struct {
showUserPreferences bool
showStatuses bool
skipAccountRelationship bool
getAllImages bool
getAllVideos bool
resourceType string
accountName string
statusID string
@ -64,8 +58,6 @@ func NewShowExecutor(printer *printer.Printer, config *config.Config, name, summ
showExe.BoolVar(&showExe.onlyPinned, flagOnlyPinned, false, "Set to true to show only the account's pinned statuses")
showExe.BoolVar(&showExe.onlyMedia, flagOnlyMedia, false, "Set to true to show only the statuses with media attachments")
showExe.BoolVar(&showExe.onlyPublic, flagOnlyPublic, false, "Set to true to show only the account's public posts")
showExe.BoolVar(&showExe.getAllImages, "all-images", false, "Set to true to show all images from a status")
showExe.BoolVar(&showExe.getAllVideos, "all-videos", false, "Set to true to show all videos from a status")
showExe.StringVar(&showExe.resourceType, flagType, "", "Specify the type of resource to display")
showExe.StringVar(&showExe.accountName, flagAccountName, "", "Specify the account name in full (username@domain)")
showExe.StringVar(&showExe.statusID, flagStatusID, "", "Specify the ID of the status to display")
@ -533,6 +525,10 @@ func (s *ShowExecutor) showMedia(gtsClient *client.Client) error {
}
func (s *ShowExecutor) showMediaFromStatus(gtsClient *client.Client) error {
if len(s.attachmentIDs) == 0 {
return FlagNotSetError{flagText: flagAttachmentID}
}
if s.statusID == "" {
return FlagNotSetError{flagText: flagStatusID}
}
@ -551,26 +547,65 @@ func (s *ShowExecutor) showMediaFromStatus(gtsClient *client.Client) error {
return fmt.Errorf("unable to ensure the existence of the directory %q: %w", cacheDir, err)
}
mediaBundle := media.NewBundle(
cacheDir,
status.MediaAttachments,
s.getAllImages,
s.getAllVideos,
s.attachmentIDs,
)
if err := mediaBundle.Download(gtsClient); err != nil {
return fmt.Errorf("unable to download the media bundle: %w", err)
type media struct {
url string
mediaType string
}
attachmentsHashMap := make(map[string]media)
imageFiles := make([]string, 0)
videoFiles := make([]string, 0)
for _, statusAttachment := range status.MediaAttachments {
attachmentsHashMap[statusAttachment.ID] = media{
url: statusAttachment.URL,
mediaType: statusAttachment.Type,
}
}
for _, attachmentID := range s.attachmentIDs {
mediaObj, ok := attachmentsHashMap[attachmentID]
if !ok {
return UnknownMediaAttachmentError{AttachmentID: attachmentID}
}
split := strings.Split(mediaObj.url, "/")
filename := split[len(split)-1]
filePath := filepath.Join(cacheDir, filename)
fileExists, err := utilities.FileExists(filePath)
if err != nil {
return fmt.Errorf(
"unable to check if the media file is already downloaded for %s: %w",
attachmentID,
err,
)
}
if !fileExists {
if err := gtsClient.DownloadMedia(mediaObj.url, filePath); err != nil {
return fmt.Errorf(
"unable to download the media attachment for %s: %w",
attachmentID,
err,
)
}
}
switch mediaObj.mediaType {
case "image":
imageFiles = append(imageFiles, filePath)
case "video":
videoFiles = append(videoFiles, filePath)
}
}
imageFiles := mediaBundle.ImageFiles()
if len(imageFiles) > 0 {
if err := utilities.OpenMedia(s.config.Integrations.ImageViewer, imageFiles); err != nil {
return fmt.Errorf("unable to open the image viewer: %w", err)
}
}
videoFiles := mediaBundle.VideoFiles()
if len(videoFiles) > 0 {
if err := utilities.OpenMedia(s.config.Integrations.VideoPlayer, videoFiles); err != nil {
return fmt.Errorf("unable to open the video player: %w", err)

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package executor
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package internal
const (

View file

@ -1,174 +0,0 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package media
import (
"fmt"
"path/filepath"
"strings"
"codeflow.dananglin.me.uk/apollo/enbas/internal/client"
"codeflow.dananglin.me.uk/apollo/enbas/internal/model"
"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
)
const (
mediaTypeImage string = "image"
mediaTypeVideo string = "video"
)
type media struct {
source string
destination string
mediaType string
}
func (m *media) download(gtsClient *client.Client) error {
fileExists, err := utilities.FileExists(m.destination)
if err != nil {
return fmt.Errorf(
"unable to determine if %s exists: %w",
m.destination,
err,
)
}
if fileExists {
return nil
}
if err := gtsClient.DownloadMedia(m.source, m.destination); err != nil {
return fmt.Errorf(
"downloading %s -> %s failed: %w",
m.source,
m.destination,
err,
)
}
return nil
}
func newMediaHashmap(cacheDir string, attachments []model.Attachment) map[string]media {
hashmap := make(map[string]media)
for ind := range attachments {
hashmap[attachments[ind].ID] = media{
source: attachments[ind].URL,
destination: mediaFilepath(cacheDir, attachments[ind].URL),
mediaType: attachments[ind].Type,
}
}
return hashmap
}
type Bundle struct {
images []media
videos []media
}
func NewBundle(
cacheDir string,
attachments []model.Attachment,
getAllImages bool,
getAllVideos bool,
attachmentIDs []string,
) Bundle {
mediaHashmap := newMediaHashmap(cacheDir, attachments)
images := make([]media, 0)
videos := make([]media, 0)
if !getAllImages && !getAllVideos && len(attachmentIDs) == 0 {
return Bundle{
images: images,
videos: videos,
}
}
if getAllImages || getAllVideos {
if getAllImages {
for _, m := range mediaHashmap {
if m.mediaType == mediaTypeImage {
images = append(images, m)
}
}
}
if getAllVideos {
for _, m := range mediaHashmap {
if m.mediaType == mediaTypeVideo {
videos = append(videos, m)
}
}
}
return Bundle{
images: images,
videos: videos,
}
}
for _, attachmentID := range attachmentIDs {
obj, ok := mediaHashmap[attachmentID]
if !ok {
continue
}
switch obj.mediaType {
case mediaTypeImage:
images = append(images, obj)
case mediaTypeVideo:
videos = append(videos, obj)
}
}
return Bundle{
images: images,
videos: videos,
}
}
func (m *Bundle) Download(gtsClient *client.Client) error {
for ind := range m.images {
if err := m.images[ind].download(gtsClient); err != nil {
return fmt.Errorf("received an error trying to download the image files: %w", err)
}
}
for ind := range m.videos {
if err := m.videos[ind].download(gtsClient); err != nil {
return fmt.Errorf("received an error trying to download the video files: %w", err)
}
}
return nil
}
func (m *Bundle) ImageFiles() []string {
filepaths := make([]string, len(m.images))
for ind := range m.images {
filepaths[ind] = m.images[ind].destination
}
return filepaths
}
func (m *Bundle) VideoFiles() []string {
filepaths := make([]string, len(m.videos))
for ind := range m.videos {
filepaths[ind] = m.videos[ind].destination
}
return filepaths
}
func mediaFilepath(cacheDir, mediaURL string) string {
split := strings.Split(mediaURL, "/")
return filepath.Join(cacheDir, split[len(split)-1])
}

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
type Application struct {

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
const (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
type Emoji struct {

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
type InstanceV2 struct {

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
type Preferences struct {

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package model
const (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package printer
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package utilities
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package utilities
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package utilities
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package utilities
import (

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
module codeflow.dananglin.me.uk/apollo/enbas/magefiles
go 1.22.3

View file

@ -1,3 +0,0 @@
SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
SPDX-License-Identifier: CC0-1.0

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
//go:build mage
package main

View file

@ -1,7 +1,3 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
//go:build ignore
package main