genvars.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package dartgen
  2. import (
  3. "fmt"
  4. "io/ioutil"
  5. "os"
  6. )
  7. const (
  8. varTemplate = `import 'dart:convert';
  9. import 'package:shared_preferences/shared_preferences.dart';
  10. import '../data/tokens.dart';
  11. /// 保存tokens到本地
  12. ///
  13. /// 传入null则删除本地tokens
  14. /// 返回:true:设置成功 false:设置失败
  15. Future<bool> setTokens(Tokens tokens) async {
  16. var sp = await SharedPreferences.getInstance();
  17. if (tokens == null) {
  18. sp.remove('tokens');
  19. return true;
  20. }
  21. return await sp.setString('tokens', jsonEncode(tokens.toJson()));
  22. }
  23. /// 获取本地存储的tokens
  24. ///
  25. /// 如果没有,则返回null
  26. Future<Tokens> getTokens() async {
  27. try {
  28. var sp = await SharedPreferences.getInstance();
  29. var str = sp.getString('tokens');
  30. if (str.isEmpty) {
  31. return null;
  32. }
  33. return Tokens.fromJson(jsonDecode(str));
  34. } catch (e) {
  35. print(e);
  36. return null;
  37. }
  38. }
  39. `
  40. varTemplateV2 = `import 'dart:convert';
  41. import 'package:shared_preferences/shared_preferences.dart';
  42. import '../data/tokens.dart';
  43. const String _tokenKey = 'tokens';
  44. /// Saves tokens
  45. Future<bool> setTokens(Tokens tokens) async {
  46. var sp = await SharedPreferences.getInstance();
  47. return await sp.setString(_tokenKey, jsonEncode(tokens.toJson()));
  48. }
  49. /// remove tokens
  50. Future<bool> removeTokens() async {
  51. var sp = await SharedPreferences.getInstance();
  52. return sp.remove(_tokenKey);
  53. }
  54. /// Reads tokens
  55. Future<Tokens?> getTokens() async {
  56. try {
  57. var sp = await SharedPreferences.getInstance();
  58. var str = sp.getString('tokens');
  59. if (str.isEmpty) {
  60. return null;
  61. }
  62. return Tokens.fromJson(jsonDecode(str));
  63. } catch (e) {
  64. print(e);
  65. return null;
  66. }
  67. }`
  68. )
  69. func genVars(dir string, isLegacy bool, hostname string) error {
  70. err := os.MkdirAll(dir, 0o755)
  71. if err != nil {
  72. return err
  73. }
  74. if !fileExists(dir + "vars.dart") {
  75. err = ioutil.WriteFile(dir+"vars.dart", []byte(fmt.Sprintf(`const serverHost='%s';`, hostname)), 0o644)
  76. if err != nil {
  77. return err
  78. }
  79. }
  80. if !fileExists(dir + "kv.dart") {
  81. tpl := varTemplateV2
  82. if isLegacy {
  83. tpl = varTemplate
  84. }
  85. err = ioutil.WriteFile(dir+"kv.dart", []byte(tpl), 0o644)
  86. if err != nil {
  87. return err
  88. }
  89. }
  90. return nil
  91. }