From 5f25ba4d2b24d32e5f8211384b6f1cd93981a457 Mon Sep 17 00:00:00 2001 From: Craftplacer <22963120+Craftplacer@users.noreply.github.com> Date: Wed, 2 Oct 2024 17:59:05 +0200 Subject: [PATCH 1/3] Add `stateHome` property to `xdg_directories` --- packages/xdg_directories/example/lib/main.dart | 1 + packages/xdg_directories/lib/xdg_directories.dart | 7 +++++++ packages/xdg_directories/test/xdg_directories_test.dart | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/packages/xdg_directories/example/lib/main.dart b/packages/xdg_directories/example/lib/main.dart index fb3695d6243..32ac09c8901 100644 --- a/packages/xdg_directories/example/lib/main.dart +++ b/packages/xdg_directories/example/lib/main.dart @@ -67,6 +67,7 @@ class _MyHomePageState extends State { 'Config Directories: \n${configDirs.map((Directory directory) => directory.path).toList().join('\n')}\n'), Text('Cache Home: \n${cacheHome.path}\n'), Text('Runtime Directory: \n${runtimeDir?.path}\n'), + Text('State Home: \n${stateHome.path}\n'), const SizedBox( height: 100, ), diff --git a/packages/xdg_directories/lib/xdg_directories.dart b/packages/xdg_directories/lib/xdg_directories.dart index 60448a0ddc2..4c9330ea7bc 100644 --- a/packages/xdg_directories/lib/xdg_directories.dart +++ b/packages/xdg_directories/lib/xdg_directories.dart @@ -174,6 +174,13 @@ Directory get dataHome => /// Throws [StateError] if the HOME environment variable is not set. Directory? get runtimeDir => _directoryFromEnvironment('XDG_RUNTIME_DIR'); +/// The base directory relative to which user-specific state data should be +/// written. (Corresponds to `$XDG_STATE_HOME`). +/// +/// Throws [StateError] if the HOME environment variable is not set. +Directory get stateHome => + _directoryFromEnvironmentWithFallback('XDG_STATE_HOME', '.local/state'); + /// Gets the xdg user directory named by `dirName`. /// /// Use [getUserDirectoryNames] to find out the list of available names. diff --git a/packages/xdg_directories/test/xdg_directories_test.dart b/packages/xdg_directories/test/xdg_directories_test.dart index 9c99afdaf8d..f84e3374d79 100644 --- a/packages/xdg_directories/test/xdg_directories_test.dart +++ b/packages/xdg_directories/test/xdg_directories_test.dart @@ -38,10 +38,12 @@ void main() { '${testPath('usr/local/test_share')}:${testPath('usr/test_share')}'; fakeEnv['XDG_DATA_HOME'] = testPath('.local/test_share'); fakeEnv['XDG_RUNTIME_DIR'] = testPath('.local/test_runtime'); + fakeEnv['XDG_STATE_HOME'] = testPath('.local/test_state'); Directory(fakeEnv['XDG_CONFIG_HOME']!).createSync(recursive: true); Directory(fakeEnv['XDG_CACHE_HOME']!).createSync(recursive: true); Directory(fakeEnv['XDG_DATA_HOME']!).createSync(recursive: true); Directory(fakeEnv['XDG_RUNTIME_DIR']!).createSync(recursive: true); + Directory(fakeEnv['XDG_STATE_HOME']!).createSync(recursive: true); File(path.join(fakeEnv['XDG_CONFIG_HOME']!, 'user-dirs.dirs')) .writeAsStringSync(r''' XDG_DESKTOP_DIR="$HOME/Desktop" @@ -73,6 +75,7 @@ XDG_VIDEOS_DIR="$HOME/Videos" expect(xdg.cacheHome.path, equals(testPath('.cache'))); expect(xdg.configHome.path, equals(testPath('.config'))); expect(xdg.dataHome.path, equals(testPath('.local/share'))); + expect(xdg.stateHome.path, equals(testPath('.local/state'))); expect(xdg.runtimeDir, isNull); expectDirList(xdg.configDirs, ['/etc/xdg']); @@ -85,6 +88,7 @@ XDG_VIDEOS_DIR="$HOME/Videos" expect(xdg.dataHome.path, equals(testPath('.local/test_share'))); expect(xdg.runtimeDir, isNotNull); expect(xdg.runtimeDir!.path, equals(testPath('.local/test_runtime'))); + expect(xdg.stateHome.path, equals(testPath('.local/test_state'))); expectDirList(xdg.configDirs, [testPath('etc/test_xdg')]); expectDirList(xdg.dataDirs, [ From c5cb34aa255b180b1e5f84f4e284592c2446d66d Mon Sep 17 00:00:00 2001 From: Craftplacer <22963120+Craftplacer@users.noreply.github.com> Date: Wed, 2 Oct 2024 18:06:37 +0200 Subject: [PATCH 2/3] Bump package version to 1.0.5 and include CHANGELOG --- packages/xdg_directories/CHANGELOG.md | 3 ++- packages/xdg_directories/pubspec.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/xdg_directories/CHANGELOG.md b/packages/xdg_directories/CHANGELOG.md index 3e08c9927ed..06cbacc6161 100644 --- a/packages/xdg_directories/CHANGELOG.md +++ b/packages/xdg_directories/CHANGELOG.md @@ -1,6 +1,7 @@ -## NEXT +## 1.0.5 * Updates minimum supported SDK version to Flutter 3.19/Dart 3.3. +* Adds `stateHome` property for `XDG_STATE_HOME`. ## 1.0.4 diff --git a/packages/xdg_directories/pubspec.yaml b/packages/xdg_directories/pubspec.yaml index 19b030ed1b5..05e59c590dd 100644 --- a/packages/xdg_directories/pubspec.yaml +++ b/packages/xdg_directories/pubspec.yaml @@ -2,7 +2,7 @@ name: xdg_directories description: A Dart package for reading XDG directory configuration information on Linux. repository: https://github.com/flutter/packages/tree/main/packages/xdg_directories issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+xdg_directories%22 -version: 1.0.4 +version: 1.0.5 environment: sdk: ^3.3.0 From 5007a39906fc8dc0dd89812543536796926c6451 Mon Sep 17 00:00:00 2001 From: Craftplacer <22963120+Craftplacer@users.noreply.github.com> Date: Thu, 3 Oct 2024 17:58:59 +0200 Subject: [PATCH 3/3] Change version to 1.1.0 --- packages/xdg_directories/CHANGELOG.md | 2 +- packages/xdg_directories/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/xdg_directories/CHANGELOG.md b/packages/xdg_directories/CHANGELOG.md index 06cbacc6161..caad99371e9 100644 --- a/packages/xdg_directories/CHANGELOG.md +++ b/packages/xdg_directories/CHANGELOG.md @@ -1,4 +1,4 @@ -## 1.0.5 +## 1.1.0 * Updates minimum supported SDK version to Flutter 3.19/Dart 3.3. * Adds `stateHome` property for `XDG_STATE_HOME`. diff --git a/packages/xdg_directories/pubspec.yaml b/packages/xdg_directories/pubspec.yaml index 05e59c590dd..732bf2cd3f4 100644 --- a/packages/xdg_directories/pubspec.yaml +++ b/packages/xdg_directories/pubspec.yaml @@ -2,7 +2,7 @@ name: xdg_directories description: A Dart package for reading XDG directory configuration information on Linux. repository: https://github.com/flutter/packages/tree/main/packages/xdg_directories issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+xdg_directories%22 -version: 1.0.5 +version: 1.1.0 environment: sdk: ^3.3.0