@@ -58,45 +58,7 @@ func (cmd *AuditCommand) run() error {
5858 return fmt .Errorf ("per-page should be positive, got %d" , cmd .perPage )
5959 }
6060
61- var auditTable auditTable
62- var iter secrethub.AuditEventIterator
63-
64- repoPath , err := cmd .path .ToRepoPath ()
65- if err == nil {
66- client , err := cmd .newClient ()
67- if err != nil {
68- return err
69- }
70- tree , err := client .Dirs ().GetTree (repoPath .GetDirPath ().Value (), - 1 , false )
71- if err != nil {
72- return err
73- }
74-
75- iter = client .Repos ().EventIterator (repoPath .Value (), & secrethub.AuditEventIteratorParams {})
76- auditTable = newRepoAuditTable (tree , cmd .timeFormatter )
77- } else {
78- secretPath , err := cmd .path .ToSecretPath ()
79- if err == nil {
80- if cmd .path .HasVersion () {
81- return ErrCannotAuditSecretVersion
82- }
83-
84- client , err := cmd .newClient ()
85- if err != nil {
86- return err
87- }
88-
89- isDir , err := client .Dirs ().Exists (secretPath .Value ())
90- if err == nil && isDir {
91- return ErrCannotAuditDir
92- }
93-
94- iter = client .Secrets ().EventIterator (secretPath .Value (), & secrethub.AuditEventIteratorParams {})
95- auditTable = newSecretAuditTable (cmd .timeFormatter )
96- } else {
97- return ErrNoValidRepoOrSecretPath
98- }
99- }
61+ iter , auditTable , err := cmd .iterAndAuditTable ()
10062
10163 tabWriter := tabwriter .NewWriter (cmd .io .Stdout (), 0 , 4 , 4 , ' ' , 0 )
10264 header := strings .Join (auditTable .header (), "\t " ) + "\n "
@@ -143,6 +105,48 @@ func (cmd *AuditCommand) run() error {
143105 return nil
144106}
145107
108+ func (cmd * AuditCommand ) iterAndAuditTable () (secrethub.AuditEventIterator , auditTable , error ) {
109+ repoPath , err := cmd .path .ToRepoPath ()
110+ if err == nil {
111+ client , err := cmd .newClient ()
112+ if err != nil {
113+ return nil , nil , err
114+ }
115+ tree , err := client .Dirs ().GetTree (repoPath .GetDirPath ().Value (), - 1 , false )
116+ if err != nil {
117+ return nil , nil , err
118+ }
119+
120+ iter := client .Repos ().EventIterator (repoPath .Value (), & secrethub.AuditEventIteratorParams {})
121+ auditTable := newRepoAuditTable (tree , cmd .timeFormatter )
122+ return iter , auditTable , nil
123+
124+ }
125+
126+ secretPath , err := cmd .path .ToSecretPath ()
127+ if err == nil {
128+ if cmd .path .HasVersion () {
129+ return nil , nil , ErrCannotAuditSecretVersion
130+ }
131+
132+ client , err := cmd .newClient ()
133+ if err != nil {
134+ return nil , nil , err
135+ }
136+
137+ isDir , err := client .Dirs ().Exists (secretPath .Value ())
138+ if err == nil && isDir {
139+ return nil , nil , ErrCannotAuditDir
140+ }
141+
142+ iter := client .Secrets ().EventIterator (secretPath .Value (), & secrethub.AuditEventIteratorParams {})
143+ auditTable := newSecretAuditTable (cmd .timeFormatter )
144+ return iter , auditTable , nil
145+ }
146+
147+ return nil , nil , ErrNoValidRepoOrSecretPath
148+ }
149+
146150type auditTable interface {
147151 header () []string
148152 row (event api.Audit ) ([]string , error )
0 commit comments