How to avoid Asterius `ahc-link` polluting the source directory? - haskell

I'm using ahc-link --output-directory _build, which produces a bunch of build artifacts in the _build directory as expected:
_build/
├── default.mjs
├── main.mjs
├── main.req.mjs
├── main.wasm
├── main.wasm.mjs
├── rts.autoapply.mjs
├── rts.closuretypes.mjs
├── rts.constants.mjs
├── rts.eventlog.mjs
├── rts.exception.mjs
├── rts.exports.mjs
├── rts.float.mjs
├── rts.fs.mjs
├── rts.funtypes.mjs
├── rts.gc.mjs
├── rts.heapalloc.mjs
├── rts.integer.mjs
├── rts.jsval.mjs
├── rts.memory.mjs
├── rts.memorytrap.mjs
├── rts.messages.mjs
├── rts.mjs
├── rts.modulify.mjs
├── rts.reentrancy.mjs
├── rts.scheduler.mjs
├── rts.setimmediate.mjs
├── rts.stablename.mjs
├── rts.stableptr.mjs
├── rts.staticptr.mjs
├── rts.symtable.mjs
├── rts.time.mjs
├── rts.tracing.mjs
├── rts.unicode.mjs
└── rts.wasi.mjs
However, it also pollutes the source directory with the following intermediate build artifacts:
?? src/Hardware/MOS6502/Emu.hi
?? src/Hardware/MOS6502/Emu.o
?? src/main.hi
?? src/main.o
Is there some other flag I need to pass to ahc-link to put these files under _build as well?

Related

How to make mtd-utils 2.0 for specified deployment path

I downloaded mtd-utils 2.0 and I want to built it for specified deployment path. If I launch:
./configure --bindir .../mtd-utils-81049e5/deploy/usr/sbin
and then I do:
make
I will get output into folder, where I launched make. I want to have executable files somewhere like: bla/mtd-utils-2.0.../deploy/usr/sbin...
IIUC, you can do this like that:
./configure --prefix=/tmp/mtd-utils
make
make install
Finally, you get this:
$ tree /tmp/mtd-utils
/tmp/mtd-utils
├── sbin
│   ├── doc_loadbios
│   ├── docfdisk
│   ├── flash_erase
│   ├── flash_eraseall
│   ├── flash_lock
│   ├── flash_otp_dump
│   ├── flash_otp_info
│   ├── flash_otp_lock
│   ├── flash_otp_write
│   ├── flash_unlock
│   ├── flashcp
│   ├── ftl_check
│   ├── ftl_format
│   ├── jffs2dump
│   ├── jffs2reader
│   ├── mkfs.jffs2
│   ├── mkfs.ubifs
│   ├── mtd_debug
│   ├── mtdinfo
│   ├── mtdpart
│   ├── nanddump
│   ├── nandtest
│   ├── nandwrite
│   ├── nftl_format
│   ├── nftldump
│   ├── recv_image
│   ├── rfddump
│   ├── rfdformat
│   ├── serve_image
│   ├── sumtool
│   ├── ubiattach
│   ├── ubiblock
│   ├── ubicrc32
│   ├── ubidetach
│   ├── ubiformat
│   ├── ubimkvol
│   ├── ubinfo
│   ├── ubinize
│   ├── ubirename
│   ├── ubirmvol
│   ├── ubirsvol
│   └── ubiupdatevol
└── share
└── man
├── man1
│   └── mkfs.jffs2.1
└── man8
└── ubinize.8
5 directories, 44 files

Python3.5 recursive glob not showing matching files

With Pyton >= 3.5 glob supports recursive searching. I am attempting to do this, but with no success.
Here you can see my directory structure:
/Volumes/user/TEST/
└── [NAME]john\ doe,\ peter\ griffin\ -\ sample\ video[29.06.17][1080]{user}
├── [NAME]john\ doe,\ perter\ griffin\ -\ sample\ video[29.06.17][1080]{user}.mp4
├── [NAME]john\ doe,\ peter\ griffin\ -\ sample\ video[29.06.17][Hi-Res]
│   ├── 583a6ea574035-img-8399.jpg
│   ├── 583a6eb9681c0-img-8401.jpg
│   ├── 583a6eb9e53e1-img-8402.jpg
│   ├── 583a6ecad078d-img-8404.jpg
│   ├── 583a6ecd207ed-img-8403.jpg
│   ├── 583a6edb7348c-img-8405.jpg
│   ├── 583a6ede1cbfa-img-8406.jpg
│   ├── 583a6eeb294a9-img-8407.jpg
│   ├── 583a6eee94a45-img-8408.jpg
│   ├── 583a6efb2389a-img-8409.jpg
│   ├── 583a6f01a78ae-img-8410.jpg
│   ├── 583a6f0daea30-img-8411.jpg
│   ├── 583a6f1301e3c-img-8412.jpg
│   ├── 583a6f1ec07d8-img-8413.jpg
│   ├── 583a6f240d4ce-img-8414.jpg
│   ├── 583a6f306f517-img-8415.jpg
│   ├── 583a6f36def7a-img-8416.jpg
│   ├── 583a6f4280706-img-8417.jpg
│   ├── 583a6f48b8b11-img-8418.jpg
│   ├── 583a6f55160cc-img-8419.jpg
│   ├── 583a6f5b7fb35-img-8420.jpg
│   ├── 583a6f68aad40-img-8423.jpg
│   ├── 583a6f6da8c0b-img-8424.jpg
│   ├── 583a6f7b9e1d6-img-8425.jpg
│   ├── 583a6f8069e59-img-8426.jpg
│   ├── 583a6f8e9891e-img-8427.jpg
│   ├── 583a6f9427910-img-8428.jpg
│   ├── 583a6fa45e3f4-img-8429.jpg
│   ├── 583a6fa96b182-img-8430.jpg
│   ├── 583a6fb935bf2-img-8431.jpg
│   ├── 583a6fca7a0c9-img-8433.jpg
│   ├── 583a6fcbab549-img-8434.jpg
│   ├── 583a6fdcf2812-img-8435.jpg
│   ├── 583a6fde5ee86-img-8436.jpg
│   ├── 583a6fee54d9b-img-8437.jpg
│   ├── 583a6ff0acb76-img-8438.jpg
│   ├── 583a7000ecd80-img-8439.jpg
│   ├── 583a70026c325-img-8440.jpg
│   ├── 583a701319c22-img-8441.jpg
│   ├── 583a701457221-img-8443.jpg
│   ├── 583a7027e8531-img-8444.jpg
│   ├── 583a7029f0e7c-img-8445.jpg
│   ├── 583a703d6c3c9-img-8446.jpg
│   ├── 583a703f879f5-img-8447.jpg
│   ├── 583a7051ae77a-img-8448.jpg
│   ├── 583a705b588c3-img-8449.jpg
│   ├── 583a706d40811-img-8450.jpg
│   ├── 583a7076cb3e9-img-8451.jpg
│   ├── 583a70894ec35-img-8452.jpg
│   ├── 583a70964fbcb-img-8453.jpg
│   ├── cai-8498-pa.jpg
│   └── cai-8498-pt.jpg
├── [NAME]john\ doe,\ peter\ griffin\ -\ sample\ video[29.06.17][Hi-Res].jpg
└── cover.png
So the images are definitely there.
Now here is my method, that for some reason, is not working:
def count_images(folder):
"""
Count the number of images in a folder.
:param folder: Folder to count the images
:return: Number of photos
"""
print(folder)
files = [file for file in glob.glob(folder + '/**/*.jpg', recursive=True)]
print(files)
return len([file for file in glob.glob(folder + '/**/*.jpg', recursive=True)])
But it just outputs the following:
/Volumes/user/TEST/[NAME]john doe, peter griffin - sample video[29.06.17][1080]{user}/
[]
It is becoming extremely frustrating, as I do not see what I am doing wrong.
So I found the problem.
The glob module has issues with certain characters in the filename - [ and ] in this case. You can use glob.escape() to escape these characters in the filename.
So the final function will look like this:
def count_images(folder):
return len([file for file in glob.glob(glob.escape(folder) + '/**/*.jpg', recursive=True)])

npm install , installs package not even listed in my package.json file

I am new to NodeJS and just cloned the code and checked my node_modules folder which has almost 100's of dependencies installed. This is my directory structure
node_modules/
├── accepts
├── after
│   └── test
├── ansi-regex
├── ansi-styles
├── arraybuffer.slice
│   └── test
├── array-flatten
├── asn1
│   ├── lib
│   │   └── ber
│   └── tst
│   └── ber
├── assert-plus
├── async
│   ├── lib
│   └── support
├── aws-sign2
├── backo2
│   └── test
├── base64-arraybuffer
│   ├── lib
│   └── test
├── base64id
│   └── lib
├── base64-url
├── benchmark
│   ├── doc
│   └── test
├── better-assert
├── bindings
├── bl
│   ├── node_modules
│   │   └── readable-stream
│   │   ├── doc
│   │   │   └── wg-meetings
│   │   └── lib
│   └── test
├── blob
│   └── test
├── bluebird
│   └── js
│   ├── browser
│   └── main
├── body-parser
│   └── lib
│   └── types
├── boom
│   ├── images
│   ├── lib
│   └── test
├── bson
│   ├── alternate_parsers
│   ├── browser_build
│   ├── lib
│   │   └── bson
│   │   └── parser
│   └── tools
├── bufferutil
│   ├── build
│   │   └── Release
│   │   └── obj.target
│   │   └── bufferutil
│   │   └── src
│   └── src
├── bytes
├── callsite
├── caseless
├── chalk
├── combined-stream
│   └── lib
├── commander
├── component-bind
├── component-emitter
├── component-inherit
│   └── test
├── connect-mongodb-session
│   └── test
├── content-disposition
├── content-type
├── cookie
├── cookie-parser
├── cookie-signature
├── core-util-is
│   └── lib
├── crc
│   └── lib
├── cryptiles
│   ├── lib
│   └── test
├── dashdash
│   └── lib
├── debug
├── delayed-stream
│   └── lib
├── depd
│   └── lib
│   ├── browser
│   └── compat
├── destroy
├── ecc-jsbn
│   └── lib
├── ee-first
├── engine.io
│   ├── lib
│   │   └── transports
│   └── node_modules
│   ├── debug
│   └── ms
├── engine.io-client
│   ├── lib
│   │   └── transports
│   └── node_modules
│   ├── debug
│   ├── ms
│   └── parseuri
├── engine.io-parser
│   └── lib
├── es6-promise
│   ├── dist
│   └── lib
│   └── es6-promise
│   └── promise
├── escape-html
├── escape-string-regexp
├── etag
├── express
│   ├── lib
│   │   ├── middleware
│   │   └── router
│   └── node_modules
│   ├── cookie
│   ├── depd
│   │   └── lib
│   │   └── compat
│   └── qs
│   ├── lib
│   └── test
├── express-session
│   ├── node_modules
│   │   └── cookie
│   └── session
├── extend
├── extsprintf
│   ├── examples
│   └── lib
├── finalhandler
├── flushwritable
│   ├── lib
│   └── test
├── forever-agent
├── form-data
│   ├── lib
│   └── node_modules
│   └── async
│   ├── dist
│   └── lib
├── forwarded
├── fresh
├── generate-function
├── generate-object-property
├── global
│   └── test
├── graceful-readlink
├── gridfs-stream
│   ├── lib
│   └── test
│   └── fixtures
├── har-validator
│   ├── bin
│   └── lib
│   └── schemas
├── has-ansi
├── has-binary
│   └── fixtures
├── has-binary-data
│   └── fixtures
├── has-cors
├── hawk
│   ├── dist
│   ├── example
│   ├── images
│   ├── lib
│   └── test
├── hoek
│   ├── images
│   ├── lib
│   └── test
│   └── modules
├── hooks-fixed
├── http-errors
├── http-signature
│   └── lib
├── iconv-lite
│   ├── encodings
│   │   └── tables
│   └── lib
├── indexof
├── inherits
├── ipaddr.js
│   ├── lib
│   ├── src
│   └── test
├── isarray
│   └── build
├── is-my-json-valid
│   └── test
│   ├── fixtures
│   └── json-schema-draft4
├── is-property
├── isstream
├── is-typedarray
├── jodid25519
│   └── lib
├── jsbn
├── json3
│   ├── coverage
│   │   └── lcov-report
│   │   └── lib
│   └── lib
├── jsonpointer
├── json-schema
│   ├── draft-00
│   ├── draft-01
│   ├── draft-02
│   ├── draft-03
│   │   └── examples
│   ├── draft-04
│   ├── lib
│   └── test
├── json-stringify-safe
│   └── test
├── jsprim
│   └── lib
├── kareem
│   └── test
├── lodash
│   ├── array
│   ├── chain
│   ├── collection
│   ├── date
│   ├── function
│   ├── internal
│   ├── lang
│   ├── math
│   ├── number
│   ├── object
│   ├── string
│   └── utility
├── media-typer
├── merge-descriptors
├── methods
├── mime
│   └── build
├── mime-db
├── mime-types
├── moment
│   ├── locale
│   └── min
├── mongodb
│   ├── lib
│   │   ├── bulk
│   │   ├── gridfs
│   │   └── gridfs-stream
│   └── test_boot
│   └── data
│   └── diagnostic.data
├── mongodb-core
│   └── lib
│   ├── auth
│   ├── connection
│   ├── tools
│   ├── topologies
│   │   └── strategies
│   └── wireprotocol
├── mongoose
│   ├── examples
│   │   ├── aggregate
│   │   ├── express
│   │   │   └── connection-sharing
│   │   ├── geospatial
│   │   ├── globalschemas
│   │   ├── lean
│   │   ├── mapreduce
│   │   ├── population
│   │   ├── promises
│   │   ├── querybuilder
│   │   ├── replicasets
│   │   ├── schema
│   │   │   └── storing-schemas-as-json
│   │   └── statics
│   ├── lib
│   │   ├── drivers
│   │   │   ├── browser
│   │   │   └── node-mongodb-native
│   │   ├── error
│   │   ├── schema
│   │   │   └── operators
│   │   ├── services
│   │   └── types
│   └── node_modules
│   ├── async
│   │   └── lib
│   └── bson
│   ├── alternate_parsers
│   ├── browser_build
│   ├── lib
│   │   └── bson
│   │   └── parser
│   └── tools
├── mpath
│   ├── lib
│   └── test
├── mpromise
│   ├── lib
│   └── test
├── mquery
│   ├── lib
│   │   └── collection
│   └── test
│   └── collection
├── ms
├── muri
│   ├── lib
│   └── test
├── nan
│   ├── doc
│   └── tools
├── negotiator
│   └── lib
├── node-gcm
│   ├── lib
│   └── node_modules
│   └── debug
│   └── lib
├── node-uuid
│   ├── benchmark
│   ├── bin
│   └── test
├── oauth
│   ├── examples
│   │   └── express-gdata
│   │   └── views
│   ├── lib
│   └── tests
├── oauth-sign
├── object-component
│   └── test
├── object-keys
├── on-finished
├── on-headers
├── options
│   └── lib
├── parsejson
├── parseqs
├── parseuri
├── parseurl
├── passport
│   └── lib
│   ├── errors
│   ├── framework
│   ├── http
│   ├── middleware
│   └── strategies
├── passport-facebook
│   └── lib
│   └── errors
├── passport-local
│   └── lib
├── passport-oauth2
│   └── lib
│   └── errors
├── passport-strategy
│   └── lib
├── password-hash
│   ├── bin
│   ├── lib
│   └── test
├── path-to-regexp
├── pause
├── pinkie
├── pinkie-promise
├── process-nextick-args
├── proxy-addr
├── qs
│   ├── dist
│   ├── lib
│   └── test
├── random-key
├── range-parser
├── raw-body
├── readable-stream
│   └── lib
├── regexp-clone
│   └── test
├── request
│   └── lib
├── send
│   └── node_modules
│   └── depd
│   └── lib
│   └── compat
├── serve-static
├── sliced
│   ├── lib
│   └── test
├── sntp
│   ├── examples
│   ├── lib
│   └── test
├── socket.io
│   ├── lib
│   └── node_modules
│   ├── debug
│   └── ms
├── socket.io-adapter
│   └── node_modules
│   ├── debug
│   ├── ms
│   └── socket.io-parser
│   ├── bench
│   └── node_modules
│   └── debug
│   └── lib
├── socket.io-client
│   ├── lib
│   └── node_modules
│   └── debug
│   └── lib
├── socket.io-parser
│   ├── bench
│   └── node_modules
│   └── debug
│   └── lib
├── sshpk
│   ├── bin
│   ├── lib
│   │   └── formats
│   └── node_modules
│   └── assert-plus
├── statuses
├── string_decoder
├── stringstream
├── strip-ansi
├── supports-color
├── to-array
├── tough-cookie
│   └── lib
├── tunnel-agent
├── tweetnacl
├── type-is
├── uid2
├── uid-safe
├── ultron
├── unpipe
├── utf8
│   └── tests
├── utf-8-validate
│   ├── build
│   │   └── Release
│   │   └── obj.target
│   │   └── validation
│   │   └── src
│   └── src
├── util-deprecate
├── utils-merge
├── vary
├── verror
│   ├── examples
│   ├── lib
│   └── tests
├── ws
│   └── lib
├── xmlhttprequest
│   ├── example
│   ├── lib
│   └── tests
└── xtend
and this my package.json
{
"name": "my-api",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"async": "^0.9.0",
"body-parser": "^1.12.0",
"cookie-parser": "^1.3.4",
"express": "latest",
"express-session": "^1.11.1",
"gridfs-stream": "latest",
"moment": "^2.10.6",
"mongoose": "latest",
"node-gcm": "latest",
"passport": "^0.2.1",
"passport-facebook": "latest",
"passport-local": "latest",
"password-hash": "^1.2.2",
"random-key": "^0.3.2",
"socket.io": "^1.3.5",
"connect-mongodb-session" : "latest"
}
}
What is wrong with it? My friend had the same project but in his node_modules only the folders mentioned in package.json are created.
They're dependencies of dependencies -
Example:
You have a dependency on express.
This in turn, has dependencies on several packages
Each of these have dependencies, on so on...
When you npm install the whole dependency graph needs to be downloaded into your node_modules folder
A nice itneractive tool for visualising the dependency graph of express is http://npm.anvaka.com/#/view/2d/express

laravel default localizations for other languages?

A new Laravel project already comes with some localizations, in english.
.
└── en
├── auth
│   ├── form.php
│   └── message.php
├── button.php
├── general.php
├── groups
│   ├── form.php
│   ├── message.php
│   ├── modal.php
│   ├── table.php
│   └── title.php
├── pagination.php
├── passwords.php
├── reminders.php
├── users
│   ├── message.php
│   ├── modal.php
│   └── title.php
└── validation.php
Are those files available for other languages, too?
Some people have published a few. See for example https://github.com/caouecs/Laravel-lang

Copy every file of entire directory structure into base path of another

I have a directory-tree with a lot of files in it. I'd like to copy all of those files into one new directory, but with all files located in the base of the folder.
So I have something like this:
images
├── avatar.png
├── bg.jpg
├── checkbox.png
├── cross.png
├── datatables
│   ├── back_disabled.png
│   ├── back_enabled.png
│   ├── forward_disabled.png
│   ├── forward_enabled.png
│   ├── sort_asc.png
│   ├── sort_asc_disabled.png
│   ├── sort_both.png
│   ├── sort_desc.png
│   └── sort_desc_disabled.png
├── exclamation.png
├── forms
│   ├── btn_left.gif
│   ├── btn_right.gif
│   ├── checkbox.gif
│   ├── input
│   │   ├── input_left-focus.gif
│   │   ├── input_left-hover.gif
│   │   ├── input_left.gif
│   │   ├── input_right-focus.gif
│   │   ├── input_right-hover.gif
│   │   ├── input_right.gif
│   │   ├── input_text_left.gif
│   │   └── input_text_right.gif
│   ├── radio.gif
│   ├── select_left.gif
│   ├── select_right.gif
And I'd like something like this:
new_folder
├── avatar.png
├── bg.jpg
├── checkbox.png
├── cross.png
├── back_disabled.png
├── back_enabled.png
├── forward_disabled.png
├── forward_enabled.png
├── sort_asc.png
├── sort_asc_disabled.png
├── sort_both.png
├── sort_desc.png
├── sort_desc_disabled.png
├── exclamation.png
├── btn_left.gif
├── btn_right.gif
├── checkbox.gif
├── input_left-focus.gif
├── input_left-hover.gif
├── input_left.gif
├── input_right-focus.gif
├── input_right-hover.gif
├── input_right.gif
├── input_text_left.gif
├── input_text_right.gif
├── radio.gif
├── select_left.gif
├── select_right.gif
I'm pretty sure there is a bashcommand for that, but I haven't found it yet. Do you have any ideas?
CS
find /source-tree -type f -exec cp {} /target-dir \;
you are looking for ways to flatten the directory
find /images -iname '*.jpg' -exec cp --target-directory /newfolder/ {} \;
find all files iname in case insensitive name mode.
cp copy once to --target-directory named /newfolder/.
{} expand the list from find into the form of /dir/file.jpg /dir/dir2/bla.jpg.
On zsh:
cp /source/**/* /destination
$ cd images && cp ** new_folder/

Resources