Skip to content

Commit

Permalink
Hide --pptx-editable in the container image
Browse files Browse the repository at this point in the history
Currently a container image does not have included LibreOffice Impress.
  • Loading branch information
yhatt committed Jan 15, 2025
1 parent 820b965 commit c3cbfd9
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 8 deletions.
4 changes: 2 additions & 2 deletions src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { error, isError } from './error'
import { TemplateOption } from './templates'
import { Theme, ThemeSet } from './theme'
import { isStandaloneBinary } from './utils/binary'
import { isOfficialDockerImage } from './utils/container'
import { isOfficialContainerImage } from './utils/container'

type Overwrite<T, U> = Omit<T, Extract<keyof T, keyof U>> & U

Expand Down Expand Up @@ -214,7 +214,7 @@ export class MarpCLIConfig {
const preview = (() => {
const p = this.args.preview ?? this.conf.preview ?? false

if (p && isOfficialDockerImage()) {
if (p && isOfficialContainerImage()) {
warn(
`Preview window cannot show within an official docker image. Preview option was ignored.`
)
Expand Down
5 changes: 3 additions & 2 deletions src/marp-cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { File, FileType } from './file'
import { Preview, fileToURI } from './preview'
import { Server } from './server'
import templates from './templates'
import { isOfficialDockerImage } from './utils/container'
import { isOfficialContainerImage } from './utils/container'
import { createYargs } from './utils/yargs'
import version from './version'
import watcher, { Watcher, notifier } from './watcher'
Expand Down Expand Up @@ -199,7 +199,7 @@ export const marpCli = async (
preview: {
alias: 'p',
describe: 'Open preview window',
hidden: isOfficialDockerImage(),
hidden: isOfficialContainerImage(),
group: OptionGroup.Basic,
type: 'boolean',
},
Expand All @@ -226,6 +226,7 @@ export const marpCli = async (
describe:
'[EXPERIMENTAL] Generate editable PPTX when converting to PPTX',
group: OptionGroup.Converter,
hidden: isOfficialContainerImage(), // Container image does not include LibreOffice Impress
type: 'boolean',
},
notes: {
Expand Down
5 changes: 3 additions & 2 deletions src/utils/container.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import _isInsideContainer from 'is-inside-container'

export const isInsideContainer = () =>
isOfficialDockerImage() || (_isInsideContainer() && !process.env.MARP_TEST_CI)
isOfficialContainerImage() ||
(_isInsideContainer() && !process.env.MARP_TEST_CI)

export const isOfficialDockerImage = () => !!process.env.MARP_USER
export const isOfficialContainerImage = () => !!process.env.MARP_USER
4 changes: 2 additions & 2 deletions src/utils/tmp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ import os from 'node:os'
import path from 'node:path'
import { promisify } from 'node:util'
import { tmpName } from 'tmp'
import { isOfficialDockerImage } from './container'
import { isOfficialContainerImage } from './container'

const tmpNamePromise = promisify(tmpName)

// Snapd Chromium cannot access from sandbox container to user-land `/tmp`
// directory so always create tmp file to home directory if in Linux.
// (Except an official docker image)
const shouldPutTmpFileToHome =
process.platform === 'linux' && !isOfficialDockerImage()
process.platform === 'linux' && !isOfficialContainerImage()

export const generateTmpName = async (extension?: `.${string}`) => {
let tmp: string = await tmpNamePromise({ postfix: extension })
Expand Down

0 comments on commit c3cbfd9

Please sign in to comment.