99 "net/http"
1010 "os"
1111 "os/exec"
12+ "path/filepath"
1213 "regexp"
1314 "runtime"
1415 "strings"
3334 green = lipgloss.AdaptiveColor {Light : "#02BA84" , Dark : "#02BF87" }
3435)
3536
37+ // Update the constants for the directory and file name
38+ const (
39+ basicCliDirName = ".basic-cli"
40+ tokenFileName = "token.json"
41+ )
42+
3643type Styles struct {
3744 Base ,
3845 HeaderText ,
@@ -470,7 +477,7 @@ func init() {
470477func main () {
471478 if len (os .Args ) < 2 {
472479 fmt .Println ("Usage: basic <command> [arguments]" )
473- os .Exit (1 )
480+ os .Exit (0 )
474481 }
475482
476483 command := os .Args [1 ]
@@ -877,37 +884,55 @@ func getKeyring() (keyring.Keyring, error) {
877884 })
878885}
879886
880- func saveToken (token * oauth2.Token ) error {
881- ring , err := getKeyring ()
887+ // Add a helper function to get the token file path
888+ func getTokenFilePath () (string , error ) {
889+ homeDir , err := os .UserHomeDir ()
882890 if err != nil {
883- return err
891+ return "" , err
884892 }
893+ basicCliDir := filepath .Join (homeDir , basicCliDirName )
894+ return filepath .Join (basicCliDir , tokenFileName ), nil
895+ }
885896
897+ // Update the saveToken function
898+ func saveToken (token * oauth2.Token ) error {
886899 customToken := & CustomToken {Token : * token }
887900 tokenJSON , err := json .Marshal (customToken )
888901 if err != nil {
889902 return err
890903 }
891904
892- return ring .Set (keyring.Item {
893- Key : tokenKey ,
894- Data : tokenJSON ,
895- })
905+ tokenFilePath , err := getTokenFilePath ()
906+ if err != nil {
907+ return err
908+ }
909+
910+ // Create the .basic-cli directory if it doesn't exist
911+ dir := filepath .Dir (tokenFilePath )
912+ if err := os .MkdirAll (dir , 0700 ); err != nil {
913+ return err
914+ }
915+
916+ return os .WriteFile (tokenFilePath , tokenJSON , 0600 )
896917}
897918
919+ // Update the loadToken function
898920func loadToken () (* oauth2.Token , error ) {
899- ring , err := getKeyring ()
921+ tokenFilePath , err := getTokenFilePath ()
900922 if err != nil {
901923 return nil , err
902924 }
903925
904- item , err := ring . Get ( tokenKey )
926+ tokenData , err := os . ReadFile ( tokenFilePath )
905927 if err != nil {
928+ if os .IsNotExist (err ) {
929+ return nil , nil // No token file exists
930+ }
906931 return nil , err
907932 }
908933
909934 var customToken CustomToken
910- err = json .Unmarshal (item . Data , & customToken )
935+ err = json .Unmarshal (tokenData , & customToken )
911936 if err != nil {
912937 return nil , err
913938 }
@@ -931,13 +956,18 @@ func loadToken() (*oauth2.Token, error) {
931956 return & customToken .Token , nil
932957}
933958
959+ // Update the deleteToken function
934960func deleteToken () error {
935- ring , err := getKeyring ()
961+ tokenFilePath , err := getTokenFilePath ()
936962 if err != nil {
937963 return err
938964 }
939965
940- return ring .Remove (tokenKey )
966+ err = os .Remove (tokenFilePath )
967+ if err != nil && ! os .IsNotExist (err ) {
968+ return err
969+ }
970+ return nil
941971}
942972
943973func refreshToken (token * oauth2.Token ) (* oauth2.Token , error ) {
0 commit comments