Antonio Mika
·
2025-03-12
asset.go
1package pobj
2
3import (
4 "fmt"
5
6 "github.com/picosh/pico/pkg/pssh"
7 "github.com/picosh/pico/pkg/send/utils"
8)
9
10type AssetNames interface {
11 BucketName(sesh *pssh.SSHServerConnSession) (string, error)
12 ObjectName(sesh *pssh.SSHServerConnSession, entry *utils.FileEntry) (string, error)
13 PrintObjectName(sesh *pssh.SSHServerConnSession, entry *utils.FileEntry, bucketName string) (string, error)
14}
15
16type AssetNamesBasic struct{}
17
18var _ AssetNames = &AssetNamesBasic{}
19var _ AssetNames = (*AssetNamesBasic)(nil)
20
21func (an *AssetNamesBasic) BucketName(sesh *pssh.SSHServerConnSession) (string, error) {
22 return sesh.User(), nil
23}
24func (an *AssetNamesBasic) ObjectName(sesh *pssh.SSHServerConnSession, entry *utils.FileEntry) (string, error) {
25 return entry.Filepath, nil
26}
27func (an *AssetNamesBasic) PrintObjectName(sesh *pssh.SSHServerConnSession, entry *utils.FileEntry, bucketName string) (string, error) {
28 objectName, err := an.ObjectName(sesh, entry)
29 if err != nil {
30 return "", err
31 }
32 return fmt.Sprintf("%s%s", bucketName, objectName), nil
33}
34
35type AssetNamesForceBucket struct {
36 *AssetNamesBasic
37 Name string
38}
39
40var _ AssetNames = &AssetNamesForceBucket{}
41var _ AssetNames = (*AssetNamesForceBucket)(nil)
42
43func (an *AssetNamesForceBucket) BucketName(sesh *pssh.SSHServerConnSession) (string, error) {
44 return an.Name, nil
45}