balena-image-fs 7.4.0-build-get-filesystem-label-ad151fb7cb9fe5d4cb2aee572d6de21d3e854f71-1 → 7.4.0-build-get-filesystem-label-e101822ba5412f3e4c1b9ee09856b35a55497e75-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file
4
4
  automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
5
  This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
- ## 7.4.0 - 2025-01-21
7
+ ## 7.4.0 - 2025-01-22
8
8
 
9
9
  * Add getLabel() to retrieve filesystem label [Ken Bannister]
10
10
 
package/build/fsLabel.js CHANGED
@@ -70,8 +70,10 @@ async function getFsLabel(disk, partition) {
70
70
  // A filesystem places the label in a certain position in its metadata. So
71
71
  // we must determine the type of filesystem. We first narrow the possibilities
72
72
  // by checking the partition type (MBR) or GUID (GPT) for the containing partition.
73
- // There are two broad categories -- FAT types and Linux native types. Finally
74
- // we confirm the presence of signature bytes within the filesystem metadata.
73
+ // There are two broad categories of filesystem -- FAT types and Linux native
74
+ // types. Finally we confirm the presence of signature bytes within the filesystem
75
+ // metadata.
76
+ // FAT types
75
77
  const mbrFatTypes = [PARTID_FAT32_CHS, PARTID_FAT32_LBA, PARTID_FAT16_LBA];
76
78
  const gptFatTypes = [GUID_EFI_SYSTEM, GUID_MS_BASIC_DATA];
77
79
  if (isMbr && mbrFatTypes.includes(partition.type)
@@ -87,7 +89,7 @@ async function getFsLabel(disk, partition) {
87
89
  labelOffset = FAT32_LABEL_OFFSET;
88
90
  }
89
91
  }
90
- // Linux filesytem of some kind; execting ext2+
92
+ // Linux filesytem of some kind; expecting ext2+
91
93
  const gptLinuxTypes = [GUID_LINUX_NATIVE, GUID_MS_BASIC_DATA];
92
94
  if (labelOffset == null && ((isMbr && partition.type === PARTID_LINUX_NATIVE)
93
95
  || (isGpt && gptLinuxTypes.includes(partition.type)))) {
@@ -99,22 +101,23 @@ async function getFsLabel(disk, partition) {
99
101
  }
100
102
  }
101
103
  // Fail on unexpected partition/filesystem
104
+ // If max length for a label not defined, then implicitly we have not even
105
+ // found a partition type.
102
106
  if (maxLength == null) {
103
107
  throw new LabelNotFound(partition.index, 'unexpected partition type');
104
108
  }
105
109
  if (labelOffset == null) {
106
110
  throw new LabelNotFound(partition.index, 'can\'t read filesystem');
107
111
  }
112
+ // Exclude trailing /0 bytes to stringify.
108
113
  let zeroBytePosition;
109
114
  for (let i = 0; i < maxLength; i++) {
110
- // Exclude trailing /0 bytes to stringify.
111
115
  if (buf.readUInt8(labelOffset + i) === 0) {
112
116
  zeroBytePosition = i;
113
117
  break;
114
118
  }
115
119
  }
116
- // If label fills available space, no need to test. We just need zeroBytePosition
117
- // to have the expected value for Buffer.toString() call below.
120
+ // Didn't find a /0 byte; must be max length.
118
121
  zeroBytePosition !== null && zeroBytePosition !== void 0 ? zeroBytePosition : (zeroBytePosition = maxLength);
119
122
  return buf.toString('utf8', labelOffset, labelOffset + zeroBytePosition).trim();
120
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fsLabel.js","sourceRoot":"","sources":["../lib/fsLabel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fsLabel.js","sourceRoot":"","sources":["../lib/fsLabel.ts"],"names":[],"mappings":";;;AAEA,6CAAyC;AAEzC,sBAAsB;AACtB,0EAA0E;AAC1E,MAAM,eAAe,GAAG,sCAAsC,CAAC;AAC/D,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AAClE,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;AAEjE,6EAA6E;AAC7E,qCAAqC;AACrC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,yBAAyB;AACzB,+CAA+C;AAC/C,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,gBAAgB;AAChB,4FAA4F;AAC5F,kGAAkG;AAClG,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,iBAAiB;AACjB,qEAAqE;AACrE,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAa,aAAc,SAAQ,wBAAU;IAC5C,YAAY,cAAsB,EAAE,WAAmB;QACtD,KAAK,CAAC,oBAAoB,cAAc,KAAK,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC;CACD;AAJD,sCAIC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,UAAU,CAC/B,IAAU,EACV,SAAsC;IAEtC,MAAM,KAAK,GAAG,MAAM,IAAI,SAAS,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAA;IAEpB,wEAAwE;IACxE,gCAAgC;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE7C,IAAI,WAA+B,CAAC;IACpC,IAAI,SAA6B,CAAC;IAClC,0EAA0E;IAC1E,8EAA8E;IAC9E,mFAAmF;IACnF,6EAA6E;IAC7E,kFAAkF;IAClF,YAAY;IACZ,YAAY;IACZ,MAAM,WAAW,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC1D,IAAI,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;WAC7C,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAC/C;QACD,SAAS,GAAG,gBAAgB,CAAC;QAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACtD,QAAQ;QACR,IAAI,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,eAAe,EAAE;YAC1D,WAAW,GAAG,kBAAkB,CAAC;YAClC,QAAQ;SACP;aAAM,IAAI,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,eAAe,EAAE;YACjE,WAAW,GAAG,kBAAkB,CAAC;SACjC;KACD;IAED,gDAAgD;IAChD,MAAM,aAAa,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IAC9D,IAAI,WAAW,IAAI,IAAI,IAAI,CACzB,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,KAAK,mBAAmB,CAAC;WAC9C,CAAC,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CACpD,EACA;QACD,SAAS,GAAG,iBAAiB,CAAC;QAC9B,yCAAyC;QACzC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,sBAAsB,CAAC,CAAC;QAC/E,IAAI,GAAG,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,mBAAmB,EAAE;YAChE,WAAW,GAAG,iBAAiB,CAAC;SAChC;KACD;IAED,0CAA0C;IAC1C,0EAA0E;IAC1E,0BAA0B;IAC1B,IAAI,SAAS,IAAI,IAAI,EAAE;QACtB,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;KACtE;IACD,IAAI,WAAW,IAAI,IAAI,EAAE;QACxB,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;KACnE;IAED,0CAA0C;IAC1C,IAAI,gBAAoC,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;YACzC,gBAAgB,GAAG,CAAC,CAAC;YACrB,MAAM;SACN;KACD;IACD,6CAA6C;IAC7C,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,IAAhB,gBAAgB,GAAK,SAAS,EAAC;IAE/B,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;AACjF,CAAC;AAzED,gCAyEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "balena-image-fs",
3
- "version": "7.4.0-build-get-filesystem-label-ad151fb7cb9fe5d4cb2aee572d6de21d3e854f71-1",
3
+ "version": "7.4.0-build-get-filesystem-label-e101822ba5412f3e4c1b9ee09856b35a55497e75-1",
4
4
  "description": "Image filesystem manipulation utilities",
5
5
  "main": "build/index.js",
6
6
  "homepage": "https://github.com/balena-io-modules/balena-image-fs",
@@ -59,6 +59,6 @@
59
59
  "node": ">=16"
60
60
  },
61
61
  "versionist": {
62
- "publishedAt": "2025-01-21T18:34:22.218Z"
62
+ "publishedAt": "2025-01-22T01:24:43.336Z"
63
63
  }
64
64
  }